同学你好,可以使用该方法添加管理员:
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() # 创建所有模型