用Flask构建一个微电影视频网站。
1.Flask:Flask扩展丰富,不臃肿,可自由选择组合各种插件,性能优越,相比其他的web框架十分的轻量级,设计哲学很优雅,易于学习,小型的项目快速的开发,大型的项目也没压力。非常的灵活。
2.Django:Django是重量级全能型的web框架,功能完全,但是有点臃肿,自带的ORM和模板引擎,灵活和自由度不高,开发小型项目的时候显得臃肿和庞大,但是,Django仍然也非常的优秀。
3.Tornado:Tornado是一个强大的、支持协程、高效并发且可扩展的web服务器,Tornado的强大在可以利用它的异步协程机制开发高并发的服务器系统。
小扩展:什么是蓝图?
答:一个应用中或跨应用制作应用组件和支持通用的模式;
蓝图的作用?
蓝图构建的目录
1.定义蓝图(app/admin/init.py)
from flask import Blueprint
admin = Blueprint("admin",__name__)
import views
2.注册蓝图(app/init.py)
from admin import admin as admin_blueprint
app.register_blueprint(admin_blueprint,url_prefix="/admin")
3.调用蓝图(app/admin/views.py)
from . improt admin
@admin.route("/")
项目前台包含:会员登录及注册 / 会员中心 / 电影播放电影评论 / 电影收藏
后台:
数据库绝对是开发中的重点,设计好了数据库,那么我们开发就成功了一半,可以看出数据库有多重要了。
对于前台的模型有以下几个表:
其中的关系:
会员表(user) | |
---|---|
id | 编号,整型,主键,自动递增 |
name | 昵称,字符串型,唯一 |
pwd | 密码,字符串型 |
邮箱,字符串型,唯一 | |
phone | 手机号码,字符串型,唯一 |
info | 个性简介,文本型 |
face | 头像,字符串型,唯一 |
addtime | 添加时间,日期时间类型,默认当前十年 |
uuid | 唯一标识符,字符串型,唯一 |
uerlog | 关联会员登录日志模型 |
comments | 关联评论模型 |
moviecols | 关联收藏模型 |
会员登录日志表(userlog) | |
id | 编号,整型,主键,自动递增 |
user_id | 所属会员ID,整型,关联user表的id字段 |
ip | IP地址,字符串型 |
addtime | 添加时间,日期时间类型,默认为当前的时间 |
标签表(tag) | |
id | 编号,整型,主键,自动递增 |
name | 标题,字符串型,唯一 |
addtime | 添加时间,日期时间类型,默认为当前的时间 |
movies | 关联电影模型 |
电影表(movie) | |
id | 编号,整型,主键,自动递增 |
title | 标题,字符串型,唯一 |
url | 地址,字符串型,唯一 |
info | 简介,文本型 |
logo | 封面,字符串型,唯一 |
star | 星型,小整型 |
playnum | 播放量,大整型 |
commentnum | 评论量,大整型 |
tag_id | 所属标签ID,整型,关联tag表的id字段 |
area | 上映地区,字符串类型 |
release_time | 上映时间,日期类型 |
length | 播放时间,字符串整型 |
addtime | 添加时间,日期时间型,默认单前时间 |
comments | 关联评论模型 |
moviecols | 关联电影收藏模型 |
上映预告(preview) | |
id | 编号,整型,主键,自动递增 |
title | 标题,字符串型,唯一 |
logo | 封面,字符串型,唯一 |
addtime | 添加时间,日期时间型,默认为当前时间 |
评论(comment) | |
id | 编号,整型,主键,自动递增 |
content | 内容,文本型 |
movie_id | 所属电影ID,整型,关联movie表的id地段 |
user_id | 所属用户ID,整型,关联user表的id字段 |
addtime | 添加时间,日期时间型,默认为当前时间 |
电影收藏(moviecol) | |
id | 编号,整型,主键,自动递增 |
movie_id | 所属电影ID,整型,关联movie表的id地段 |
user_id | 所属用户ID,整型,关联user表的id字段 |
addtime | 添加时间,日期时间型,默认为当前时间 |
后台模型
权限表(auth) | |
---|---|
id | 编号,整型,主键,自动递增 |
name | 名称,字符串型,唯一 |
url | 地址,字符串型,唯一 |
addtime | 添加时间,日期时间类型 |
角色表(role) | |
id | 编号,整型,主键,自动递增 |
name | 名称,字符串型,唯一 |
auths | 角色权限列表,字符串型 |
addtime | 添加时间,日期时间类型,默认为当前时间 |
admin | 关联admin模型 |
管理员表(admin) | |
id | 编号,整型,主键,自动递增 |
name | 管理员账号,字符串型,唯一 |
pwd | 管理员密码,字符串型 |
is_super | 是否为超级管理员,小整型 |
role_id | 所属角色ID,模型,关联role表的id字段 |
addtime | 添加时间,日期时间类型,默认为当前时间 |
adminlogs | 关联adminlog模型 |
oplogs | 关联oplog模型 |
管理员登录日志(adminlog) | |
id | 编号,整型,主键,自动递增 |
adminlog | 所属管理员id,整型,关联admin的id字段 |
ip | 登录IP,字符串型 |
addtime | 添加时间,日期时间类型,默认为当前时间 |
操作日志(oplog) | |
id | 编号,整型,主键,自动递增 |
adminlog | 所属管理员ID, 整型, 管理admin的id字段 |
ip | 操作IP,字符串型 |
reason | 操作原因,字符串型 |
addtime | 添加时间,日期时间类型,默认为当前时间 |
其实很简单,用pycharm很快就能搭建好我们需要的环境,同时安装好mysql,在IED中输入:
python manage.py runserver
主界面 后台