1.安装数据库连接依赖包

pip install flask-sqlalchemy

2.创建movie数据库

在CentOS虚拟机,进入MaridDB数据库提示符,创建movie数据库

create database movie

3.定义MaridDB数据库连接

在app目录下的__init__.py文件中添加以下内容

# _*_coding:utf-8_*_from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy
import pymysql# 实例化Flask类得到app对象
app = Flask(__name__)# 定义连接的数据库
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://root:root1234@192.168.81.10:3306/movie"# 如果设置成True(默认情况),Flask-SQLAlchemy将会追踪对象的修改并且发送信号
# 这需要额外的内存,如果不必要的可以禁用
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True# 定义secret_key
app.config['SECRET_KEY'] = "6bd749587aad49399f674b202a07d56f"db = SQLAlchemy(app)

4.定义数据模型类

在app目录下创建models.py文件,文件内容为

# _*_coding:utf-8_*_from datetime import datetime
from app import db

4.1 定义会员数据模型

# 会员
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.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 %r>" % self.name# 检测密码,判断用户输入的密码是否与数据库中保存的用户的密码相同def check_pwd(self,pwd):from werkzeug.security import check_password_hashreturn check_password_hash(self.pwd,pwd)

4.2 定义会员登录日志数据模型

# 会员登录日志
class Userlog(db.Model):__tablename__ = 'userlog'        # 定义用户日志表在数据库中的名称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

4.3 定义标签数据模型

# 电影标签
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')  # 电影外键的键值def __repr__(self):return "<Tag %r>" % self.name

4.4 定义电影数据模型

# 电影
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)  # 播放量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 %r>" % self.title

4.5 定义上映预告数据模型

# 上映预告
class Preview(db.Model):__tablename__ = 'preview'              # 定义电影上映预告表在数据库中的名称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.now)  # 添加时间def __repr__(self):return "<Preview %r>" % self.title

4.6 定义电影评论数据模型

# 电影评论
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

4.7 定义电影收藏数据模型

# 电影收藏
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)  # 添加收藏时间def __repr__(self):return "<Moviecol %r>" % self.id

4.8 定义权限数据模型

# 权限
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(100), unique=True)  # 地址addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间def __repr__(self):return "<Auth %r>" % self.name

4.9 定义角色数据模型

# 角色
class Role(db.Model):__tablename__ = 'role'              # 定义用户角色表在数据库中的名称id = db.Column(db.Integer, primary_key=True)  # 编号name = db.Column(db.String(128), unique=True)  # 角色名称auths = db.Column(db.String(512))addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 添加时间admins = db.relationship("Admin", backref='role')  # 管理员外键关系关联def __repr__(self):return "<Role %r>" % self.name

4.10 定义管理员数据模型

# 管理员
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.namedef check_pwd(self, pwd):from werkzeug.security import check_password_hashreturn check_password_hash(self.pwd, pwd)

4.11 定义管理员登录日志数据模型

# 管理员登录日志
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))  # 登录IPaddtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 登录时间def __repr__(self):return "<Adminlog %r>" % self.id

4.12 定义用户操作日志

# 操作日志
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))  # 登录IPreason = db.Column(db.String(600))  # 操作原因addtime = db.Column(db.DateTime, index=True, default=datetime.now)  # 登录时间def __repr__(self):return "<Oplog %r>" % self.id

在models.py文件保存所有的模型类

5. 创建数据库

models.py文件中,定义main函数,在MariaDB数据库中生成前面定义的模型表

if __name__ == '__main__':db.create_all()

单独执行models.py文件,在MariaDB数据库的movie数据库中创建数据表

数据库创建完成,进入MariaDB数据库提示符,查看创建的数据表

转载于:https://www.cnblogs.com/renpingsheng/p/9062166.html

Flask开发微电影网站(二)相关推荐

  1. Flask开发微电影网站(一)

    1.用到的Flask知识 1.使用整形,浮点型,路径型,字符串型下正则表达式路由转化器 2.使用GET与POST请求,上传文件,cookie获取与响应,404处理 3.使用模板自动转义,定义过滤器,定 ...

  2. Flask开发微电影网站(三)

    页面完成后的最终布局 电影视频网站首页面 会员登录页面 会员注册页面 点击退出和会员按钮,直接进入会员登录页面 视频播放页面 可以看到,页面共同的部分是顶部导航和底部导航 所以我们可以把页面顶部导航和 ...

  3. Flask开发微电影网站(五)

    后台管理页面是系统管理员登录后对网站进行管理的前端页面 后台登录页面,如下图所示 管理员登录后的页面,如下图所示 管理员登录后,在右上角显示的管理员信息,如下图所示 管理员登录后,在页面中间部分的左侧 ...

  4. Flask开发微电影网站(七)

    1.后台管理之电影管理 1.1 定义电影表单 在app的admin目录的forms.py文件中,定义电影表单 # 电影表单 class MovieForm(FlaskForm):title = Str ...

  5. Flask开发微电影网站(六)

    1. 后台管理登录功能实现 1.1 后台管理页面登录表单LoginForm 在app的admin目录下创建forms.py文件,用来保存admin蓝图中需要使用到的表单 from flask_wtf ...

  6. Flask开发微电影网站(十)

    1.后台管理之角色管理 1.1 角色管理之定义角色表单 在app的admin目录的forms.py文件中,定义角色表单 # 角色表单 class RoleForm(FlaskForm):name = ...

  7. Python-Flask开发微电影网站(二)

    1.安装数据库连接依赖包 pip install flask-sqlalchemy 2.创建movie数据库 在CentOS虚拟机,进入MaridDB数据库提示符,创建movie数据库 create ...

  8. Flask开发微电影网站(八)

    1.后台管理之电影预告管理 1.1 定义电影预告表单 在app的admin目录的forms.py文件中,定义电影预告表单 ​ # 预告表单 class PreviewForm(FlaskForm):t ...

  9. Python-Flask开发微电影网站(一)

    1.用到的Flask知识 1.使用整形,浮点型,路径型,字符串型下正则表达式路由转化器 2.使用GET与POST请求,上传文件,cookie获取与响应,404处理 3.使用模板自动转义,定义过滤器,定 ...

最新文章

  1. 在Ubuntu 14.04 64bit上进行md5加密编程
  2. 按下回车表示确定提交
  3. Web开发常规调试方法与常见问题分析
  4. flask小demo-数据查询
  5. linux下延时1ms用什么函数,Linux下1ms分辨率定时器推荐方式
  6. L13操作系统之树(过程)
  7. CentOS 6.5+Syslog-ng+LogZilla搭建中央日志服务器
  8. [转] 关于闰年的判断方法
  9. 算法:找出存在子字符串的最先位置28. Implement strStr()
  10. 矩阵范数的等价性(原创)
  11. Spring中的Bean可以绕过生命周期管理吗?
  12. Win7下 安全、彻底删除Orcale数据库
  13. Java教学视频下载(全集)
  14. FPGA深度学习加速(1) - Xilinx ug892-Vivado design flows overview (Vivado设计流程简述) - 阅读笔记
  15. 模式识别和计算机科学与技术,模式识别与智能系统
  16. java的inputbox,Excel|VBA的inputbox函数和inputbox方法
  17. java 营业执照验证_基于Java的营业执照识别示例代码-六派数据
  18. PS抠图之单色背景图片
  19. 微软巨资收购Skype 网络电话行业受关注
  20. http://blog.sina.com.cn/s/blog_7f5ad8c20101cnna.html#commonComment

热门文章

  1. node创建web服务器代码示例
  2. Java客户端操作elasticsearch--向索引库添加mappings映射数据
  3. Scala中的trait特质
  4. Hibernate一对多关联映射及cascade级联操作
  5. vooc是什么快充协议_5G时代除了网速,快充同样重要!
  6. Centos7.9禁用密码登录
  7. 性能测试(02)-HttpSampler
  8. SPSS学习笔记之——两独立样本的非参数检验(Mann-Whitney U )
  9. Mjpeg‐stream移植
  10. C语言的特点是什么?