分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

Flask开发微电影网站(二)

发布时间:2023-09-06 01:55责任编辑:蔡小小关键词:暂无标签

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_templatefrom flask_sqlalchemy import SQLAlchemyimport 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_keyapp.config[‘SECRET_KEY‘] = "6bd749587aad49399f674b202a07d56f"db = SQLAlchemy(app)

4.定义数据模型类

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

# _*_coding:utf-8_*_from datetime import datetimefrom 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_hash ???????return 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.name ???def check_pwd(self, pwd): ???????from werkzeug.security import check_password_hash ???????return 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)) ?# 登录IP ???addtime = 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)) ?# 登录IP ???reason = 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数据库提示符,查看创建的数据表

Flask开发微电影网站(二)

原文地址:https://www.cnblogs.com/renpingsheng/p/9062166.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved