Flask开发微电影网站(一)-阿里云开发者社区

开发者社区> 任平生78> 正文

Flask开发微电影网站(一)

简介: 1.用到的Flask知识 1.使用整形,浮点型,路径型,字符串型下正则表达式路由转化器 2.使用GET与POST请求,上传文件,cookie获取与响应,404处理 3.使用模板自动转义,定义过滤器,定义全局上下文处理器,Jinja2语法,包含,继承,定义宏 4.
+关注继续查看

1.用到的Flask知识

  • 1.使用整形,浮点型,路径型,字符串型下正则表达式路由转化器
  • 2.使用GET与POST请求,上传文件,cookie获取与响应,404处理
  • 3.使用模板自动转义,定义过滤器,定义全局上下文处理器,Jinja2语法,包含,继承,定义宏
  • 4.使用flask-wtf定义表单模型,字段类型,字段验证,视图处理表单,模板使用表单
  • 5.使用flask-sqlachemy定义数据库模型,对数据进行增删查改,数据迁移
  • 6.使用蓝图优化项目结构,实现微电影网站前台与后台业务逻辑
  • 7.flask部署,安装编译Nginx,安装Mysql服务以及通过Nginx反向代理对视频流媒体限制下载速率,限制单个IP能发起的播放连接数

2.用到的视频技术

  • 1.jwplayer播放器插件
  • 2.视频限速限IP访问
  • 3.FLV,MP4视频格式支持
  • 4.Nginx点播实现

3.环境说明:

开发系统:Win 7(与数据库虚拟机以NAT方式连接,IP地址为:192.168.81.3)
python版本:3.6.3
开发工具:pycharm 专业版
数据库:MariaDB 5.5.56-Server
数据库所在系统:CentOS 7.4(IP地址为:192.168.81.10)

4.项目模型设计

  • 使用Flask的蓝图Blueprint规划项目结构
  • 使用Flask sqlalchemy定义和业务需求相关的数据库模型
  • 结合MySQL数据库生成数据表

4.1前端搭建

实现前后台html布局页面搭建
实现Jinja2引擎语法
引入静态资源文件,404错误页面的处理

4.2后端开发

Flask sqlalchemy结合MySQL数据表进行增删改查操作
Flask数据分页查询,路由装饰器定义,模板中变量调用,登录会话机制,上传文件
Flask wtforms表单验证,Flask自定义应用上下文,自定义权限装饰器对管理系统进行基于角色权限的访问控制
Flask的多表关联查询,关键字模糊查询等

4.3网站部署

实现在CentOS服务器上搭建Nginx+MySQL+python环境
使用Nginx反向代理多端口多进程部署微电影网站
配置Nginx流媒体访问限制参数

5.前后台项目目录分析:

5.1 前台(home):

数据模型:models.py
表单处理:home/forms.py
模版目录:templates/home
静态目录:static

5.2 后台(admin):

数据模型:models.py
表单处理:admin/forms.py
模版目录:templates/admin
静态目录:static

整个项目目录如下图所示:

img_6511f8941a566ab2de5d439bea59e337.png

6.使用蓝图构建项目目录

6.1 什么是目录

一个应用中或跨应用制作组件和通用的模式,类似于Django中的app

6.2蓝图的作用

将不同的功能模块化
构建大型应用
优化项目结构
增强可读性,易于维护

6.3蓝图构建项目目录

6.3.1 定义蓝图

在home目录下的__init__.py文件

from flask import Blueprint
home=Blueprint('home',__name__)
import app.home.views

在admin目录下的__init__.py文件

from flask import Blueprint
admin=Blueprint('admin',__name__)
import app.admin.views          
6.3.2 注册蓝图

修改app目录下的__init__.py文件

from app.admin import admin as admin_blueprint
from app.home import home as home_blueprint

app.register_blueprint(home_blueprint)
app.register_blueprint(admin_blueprint, url_prefix='/admin')
6.3.3 调用蓝图

home目录下的views.py文件

from . import home

@home.route("/register/", methods=["GET", "POST"])
def register():
    pass

@home.route("/login/", methods=['GET', 'POST'])
def login():
    pass

admin目录下的views.py文件

from . import admin

@admin.route('/')
def index():
    pass

@admin.route('/login/', methods=['GET', 'POST'])
def login():
    pass

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
想将算法进一步开发吗?手把手教你搭建基于CNN模型的Flask Web应用
想将算法进一步开发应用产品吗?本文手把手教你搭建基于CNN模型的Flask Web应用,算是抛砖引玉了。感兴趣的读者可以将自己的算法开发成其他类型的应用产品,说不定下一个人工智能创业公司Boss就是你哦!
4803 0
阿里宣布Atlas开源:安卓客户端容器化框架,大规模团队移动开发利器
手机淘宝安卓客户端容器化框架Atlas正式宣布开源,Atlas由阿里巴巴移动团队自研,以容器化思路解决大规模团队协作问题,实现并行开发、快速迭代和动态部署,适用于Android 4.x以上系统版本的大小型App开发。
4171 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
3973 0
分享16款基于 HTML5 Canvas 开发的网页游戏
  现在,越来越多的人尝试用 HTML5 来制作网页游戏等丰富的 Web 应用。上次向大家推荐了21款最佳 HTML5 网页游戏,今天要与大家分享的是另外25款基于 HTML5 Canvas 开发的网页游戏,相信体验了这些游戏之后,大家都会觉得 HTML5 很好很强大。
932 0
+关注
123
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载