老师,管理员怎么添加

来源:7-1 .管理员登录

3Words

2017-08-07

这节课中,有了admin,我想问一下, 我该怎么添加管理员。

写回答

2回答

rustgopy

2017-08-09

同学,你好,3-7节课不完整,正在重新上传,请见谅!

0
0

rustgopy

2017-08-07

同学你好,可以使用该方法添加管理员:

role = Role(
    name="超级管理员",
    auths=""
)
db.session.add(role)
db.session.commit()
from werkzeug.security import generate_password_hash

admin = Admin(
    name="imoocmovie",
    pwd=generate_password_hash("imoocmovie"),
    is_super=0,
    role_id=1
)
db.session.add(admin)
db.session.commit()

如果出现错误sqlalchemy.exc.InvalidRequestError: Table 'user' is already defined for this MetaData instance,可以在每个模型上加__table_args__ = {"useexisting": True},用会员模型用如下方法:

# 会员
class User(db.Model):
    __tablename__ = "user"
    __table_args__ = {"useexisting": True}

完整定义:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql

import os

app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:root@127.0.0.1:8889/movie"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
db = SQLAlchemy(app)

# 会员
class User(db.Model):
    __tablename__ = "user"
    __table_args__ = {"useexisting": True}
    id = db.Column(db.Integer, primary_key=True)  # 编号
    name = db.Column(db.String(100), unique=True)  # 昵称
    pwd = db.Column(db.String(100))  # 密码
    email = db.Column(db.String(100), unique=True)  # 邮箱
    phone = db.Column(db.String(11), unique=True)  # 手机号码
    info = db.Column(db.Text)  # 个性简介
    face = db.Column(db.String(255), unique=True)  # 头像
    addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 注册时间
    uuid = db.Column(db.String(255), unique=True)  # 唯一标志符
    userlogs = db.relationship('Userlog', backref='user')  # 会员日志外键关系关联
    comments = db.relationship('Comment', backref='user')  # 评论外键关系关联
    moviecols = db.relationship('Moviecol', backref='user')  # 收藏外键关系关联

    def __repr__(self):
        return "<User %r>" % self.name

    def check_pwd(self, pwd):
        from werkzeug.security import check_password_hash
        return check_password_hash(self.pwd, pwd)

#其它模型省略
if __name__ == "__main__":
    db.create_all() # 创建所有模型


0
16
3Words
回复
jqlts1
你懂我,朋友。。。
2017-08-09
共16条回复

Python Flask 构建微电影视频网站

Python 最好用轻量级框架,让你轻松胜任 Python Web 工程师

683 学习 · 663 问题

查看课程