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
整個項目目錄如下圖所示:

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
