6-1 注册管理员到数据库
来源:7-1 .管理员登录
进击的路人甲
2017-08-07

# -*- coding:utf-8 -*-
from datetime import datetime
from app import db
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.utcnow) # 注册时间
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 {}>".format(self.name)
class UserLog(db.Model):
"""会员登陆日志"""
__tablename__ = "userlog"
__table_args__ = {"useexisting": True}
id = db.Column(db.Integer, primary_key=True) # 编号
user_id = db.Column(db.Integer, db.ForeignKey("user.id")) # 所属会员
ip = db.Column(db.String(100)) # 登陆IP
addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow) # 登陆时间
def __repr__(self):
return "<UserLog {}>".format(self.id)
class Tag(db.Model):
"""标签"""
__tablename__ = "tag"
__table_args__ = {"useexisting": True}
id = db.Column(db.Integer, primary_key=True) # 编号
name = db.Column(db.String(100), unique=True) # 标题
addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow) # 添加时间
movies = db.relationship("Movie", backref="tag") # 标签
def __repr__(self):
return "<Tag {}>".format(self.name)
class Movie(db.Model):
"""影片"""
__tablename__ = "movie"
__table_args__ = {"useexisting": True}
id = db.Column(db.Integer, primary_key=True) # #编号
title = db.Column(db.String(255), unique=True) # 标题
url = db.Column(db.String(255), unique=True) # 地址
info = db.Column(db.Text) # 简介
logo = db.Column(db.String(255), unique=True) # 封面
star = db.Column(db.SmallInteger) # 星级
playnum = db.Column(db.BigInteger) # 播放量
commentnum = db.Column(db.BigInteger) # 评论量
tag_id = db.Column(db.Integer, db.ForeignKey('tag.id')) # 所属标签
area = db.Column(db.String(255)) # 上映地区
release_time = db.Column(db.Date) # 上映时间
length = db.Column(db.String(100)) # 播放时间
addtime = db.Column(db.DateTime, index=True, default=datetime.now) # 添加时间
comments = db.relationship("Comment", backref='movie') # 评论外键关联
moviecols = db.relationship("Moviecol", backref='movie') # 电影收藏外键关联
def __repr__(self):
return "<Movie {}>".format(self.title)
class Preview(db.Model):
"""上映预告"""
__tablename__ = "preview"
__table_args__ = {"useexisting": True}
id = db.Column(db.Integer, primary_key=True) # 编号
title = db.Column(db.String(255), unique=True) # 标题
logo = db.Column(db.String(255), unique=True) # 封面
addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow) # 添加时间
def __repr__(self):
return "<Preview {}>".format(self.title)
class Comment(db.Model):
__tablename__ = "comment"
__table_args__ = {"useexisting": True}
id = db.Column(db.Integer, primary_key=True) # 编号
content = db.Column(db.Text) # 内容
movie_id = db.Column(db.Integer, db.ForeignKey('movie.id')) # 所属电影
user_id = db.Column(db.Integer, db.ForeignKey('user.id')) # 所属用户
addtime = db.Column(db.DateTime, index=True, default=datetime.now) # 添加时间
def __repr__(self):
return "<Comment %r>" % self.id
class Moviecol(db.Model):
"""电影收藏"""
__tablename__ = "moviecol"
__table_args__ = {"useexisting": True}
id = db.Column(db.Integer, primary_key=True) # 编号
movie_id = db.Column(db.Integer, db.ForeignKey('movie.id')) # 所属电影
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow) # 添加时间
def __repr__(self):
return "<Moviecol {}>".format(self.id)
class Auth(db.Model):
"""权限"""
__table_args__ = {"useexisting": True}
id = db.Column(db.Integer, primary_key=True) # 编号
name = db.Column(db.String(25), unique=True) # 名称
url = db.Column(db.String(255), unique=True) # 地址
addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow)
def __repr__(self):
return "<Auth {}>".format(self.name)
class Role(db.Model):
"""角色"""
__table_args__ = {"useexisting": True}
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), unique=True)
auths = db.Column(db.String(600))
addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow)
admins = db.relationship("Admin", backref="role") # 管理员外键
def __repr__(self):
return "<Role {}>".format(self.name)
class Admin(db.Model):
"""管理员"""
__tablename__ = "admin"
__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))
is_super = db.Column(db.SmallInteger)
role_id = db.Column(db.Integer, db.ForeignKey('role.id'))
addtime = db.Column(db.DateTime, index=True, default=datetime.now)
adminlogs = db.relationship("Adminlog", backref='admin') # 管理员登陆日志外键关联
oplogs = db.relationship("Oplog", backref="admin") # 管理员操作日志
def __repr__(self):
return "<Admin {}>".format(self.name)
class Adminlog(db.Model):
"""管理员登陆日志"""
__tablename__ = "adminlog"
__table_args__ = {"useexisting": True}
id = db.Column(db.Integer, primary_key=True) # 编号
admin_id = db.Column(db.Integer, db.ForeignKey("user.id")) # 所属管理员
ip = db.Column(db.String(100)) # 登陆IP
addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow) # 登陆时间
def __repr__(self):
return "<AdminLog {}>".format(self.id)
class Oplog(db.Model):
"""管理员操作日志"""
__tablename__ = "oplog"
__table_args__ = {"useexisting": True}
id = db.Column(db.Integer, primary_key=True) # 编号
admin_id = db.Column(db.Integer, db.ForeignKey("user.id")) # 所属管理员
ip = db.Column(db.String(100)) # 登陆IP
reason = db.Column(db.String(600)) # 操作原因
addtime = db.Column(db.DateTime, index=True, default=datetime.utcnow) # 登陆时间
def __repr__(self):
return "<OpLog {}>".format(self.id)
if __name__ == "__main__":
db.create_all()
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()
__init__.py文件内容:
# -*- coding:utf-8 -*-
from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
import pymysql
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:mysql@localhost/movie"
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
app.config["SECRET_KEY"] = "a825917953e94191801fb10b7d92151a"
app.debug = True
db = SQLAlchemy(app)
from app.home import home as home_bluepeint
from app.admin import admin as admin_bluepeint
app.register_blueprint(home_bluepeint)
app.register_blueprint(admin_bluepeint, url_prefix="/admin")
@app.errorhandler(404)
def page_not_found(error):
return render_template("home/404.html"), 404
2回答
-
亲,如果有困难,把报错的截图贴到问答区,老师为你解答!
0122017-09-14 -
欲影
2017-09-12
我也是这里出问题了,能请教下怎么解决的么?
00
相似问题