
(Microfilm) D:\Microfilm\Microfilm\Scripts>pip install -i https://pypi.douban.com/simple/ flask-sqlalchemy
配置app.confing http://www.pythondoc.com/flask-sqlalchemy/config.html
model 数据模型参考 http://www.pythondoc.com/flask-sqlalchemy/models.html
创建Mysql数据库
mysql> create database movie;
Query OK, 1 row affected (0.00 sec)












app/model.py
#conding:utf-8 from flask import Flask from flask_sqlalchemy import SQLAlchemy from datetime import datetime import pymysql app = Flask(__name__) app.config["SQLALCHEMY_DATABASE_URI"]="mysql+pymysql://root:root@127.0.0.1:3306/movie" app.config["SQLALCHEMY_TRACK_MODIFICATIONS"]=True #http://www.pythondoc.com/flask-sqlalchemy/config.html db = SQLAlchemy(app) #会员 class User(db.Model): __tablename__ = "user" 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()) #index索引 #祖册时间 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 #会员登入日志 class Userlog(db.Model): __tablename__ = 'userlogs' 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.now()) #登入时间 def __repr__(self): return '<Userlog %r>' % self.id #标签 class Tag(db.Model): __tablename__ = 'tag' 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.now) #添加时间 movies = db.relationship('Movie',backref='tag') #绑定当前tag表 def __repr__(self): return '<Tag %r>' % self.name #电影 class Movie(db.Model): __tablename__ = 'movie' 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)#播放量 commentnun = 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 %r>' % self.title #上映预告 class Preview(db.Model): __tablename__ ='preview' id= db.Column(db.Integer,primary_key=True) #编号 title = db.Column(db.String(255), unique=True) # 标题 log = db.Column(db.Integer, unique=True) # 封面 addtime = db.Column(db.DateTime, index=True, default=datetime.now) # 添加时间 def __repr__(self): return '<Preview %r>' % self.title #评论 class Comment(db.Model): __tablename__ = 'comment' 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' 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.now)#添加时间 def __repr__(self): return '<Moviecol %r>' % self.id #权限 class Auth(db.Model): __tablename__ = 'auth' id = db.Column(db.Integer, primary_key=True) # 编号 name = db.Column(db.String(100),unique=True) #名称 url = db.Column(db.String(255),unique=True) #地址 addtime = db.Column(db.DateTime, index=True, default=datetime.now) # 添加时间 def __repr__(self): return '<Auth %r>' % self.name #角色数据 class Role(db.Model): __tablename__ = 'role' 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.now) # 添加时间 admins=db.relationship("Admin",backref = 'role') #管理员外键关系关联 def __repr__(self): return '<Role %r>' % self.name #管理员 class Admin(db.Model): __tablename__ = 'admin' 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) #0为超级管理员 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 %r>' % self.name #管理员登入日志 class Adminlog(db.Model): __tablename__ = 'adminlog' id = db.Column(db.Integer,primary_key=True) #编号 admin_id = db.Column(db.Integer,db.ForeignKey('admin.id')) #所属会员 ip = db.Column(db.String(100)) #登入IP addtime = db.Column(db.DateTime,index=True,default=datetime.now()) #登入时间 def __repr__(self): return '<Adminlog %r>' % self.id #管理员操作日志 class Oplog(db.Model): __tablename__ = 'oplog' id = db.Column(db.Integer,primary_key=True) #编号 admin_id = db.Column(db.Integer,db.ForeignKey('admin.id')) #所属会员 ip = db.Column(db.String(100)) #登入IP reson = db.Column(db.String(600)) # 操作原因 addtime = db.Column(db.DateTime,index=True,default=datetime.now()) #登入时间 def __repr__(self): return '<Oplog %r>' % 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='root', pwd=generate_password_hash('rootroot'), is_super = 0, role_id =1 ) db.session.add(admin) db.session.commit()
下载
(Microfilm) D:\Microfilm\app>pip install pymysql
运行
(Microfilm) D:\Microfilm\app>python models.py
数据库操作笔记
mysql> create database movie; 创数据库电影 mysql> use movie; #使用数据库 Database changed mysql> show tables; 显示列表 +-----------------+ | Tables_in_movie | +-----------------+ | admin | | adminlog | | auth | | comment | | movie | | moviecol | | oplog | | preview | | role | | tag | | user | | userlogs | +-----------------+ 12 rows in set (0.00 sec) mysql> desc admin; 查看数据库结构 +----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | name | varchar(100) | YES | UNI | NULL | | | pwd | varchar(100) | YES | | NULL | | | is_super | smallint(6) | YES | | NULL | | | role_id | int(11) | YES | MUL | NULL | | | addtime | datetime | YES | MUL | NULL | | +----------+--------------+------+-----+---------+----------------+ 6 rows in set (0.00 sec) mysql> select * from role; 查询数据库 +----+-----------------+-------+---------------------+ | id | name | auths | addtime | +----+-----------------+-------+---------------------+ | 1 | 超级管理员 | | 2018-01-14 09:08:50 | +----+-----------------+-------+---------------------+ 1 row in set (0.07 sec) mysql> select * from admin/G; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '/G' at line 1 mysql> select * from admin\G; *************************** 1. row *************************** id: 1 name: root pwd: pbkdf2:sha256:50000$z4vB7RtA$f9d787053efdf560ed05414764c530217a032240e954e642fb3237a5970886dc is_super: 0 role_id: 1 addtime: 2018-01-14 09:14:29 1 row in set (0.00 sec) ERROR: No query specified

浙公网安备 33010602011771号