请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,管理员怎么添加

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

正在回答 回答被采纳积分+3

2回答

rustgopy 2017-08-09 15:33:55

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

0 回复 有任何疑惑可以回复我~
rustgopy 2017-08-07 10:51:21

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

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 回复 有任何疑惑可以回复我~
  • 提问者 3Words #1
    这些语句在哪里定义
    回复 有任何疑惑可以回复我~ 2017-08-07 11:03:53
  • rustgopy 回复 提问者 3Words #2
    可以在视图下定义,记得引入模型
    回复 有任何疑惑可以回复我~ 2017-08-07 11:26:20
  • 提问者 3Words #3
    老师,我可不可以直接在mysql中添加呢。 那应该怎么实现
    回复 有任何疑惑可以回复我~ 2017-08-07 12:16:35
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号