基於Flask框架搭建視訊網站的學習日誌(二)
阿新 • • 發佈:2020-02-04
基於Flask框架搭建視訊網站的學習日誌(二)2020/02/02
一、初始化
所有的Flask程式都必須建立一個程式例項,程式例項是Flask類的物件
from flask import Flask app = Flask(__name__)
Flask 類的建構函式Flask()只有一個必須指定的引數,即程式主模組或包的名字。在大多數程式中,python的
__name__
變數就是所需的值。(Flask這個引數決定程式的根目錄,以便稍後能夠找到相對與程式根目錄的資原始檔位置)——《Flask Web開發》
二、路由和檢視函式
1.路由:
個人對路由的理解:程式例項需要知道每個URL請求執行那些程式碼,用route()修飾器把函式繫結到URL上
2.檢視函式:
返回的響應可以是字串或者複雜的表單
三、動態路由
變數規則 Flask中文文件(https://dormousehole.readthedocs.io/en/latest/quickstart.html)
通過把 URL 的一部分標記為
<variable_name>
就可以在 URL 中新增變數。標記的 部分會作為關鍵字引數傳遞給函式。通過使用<converter:variable_name>
,可以 選擇性的加上一個轉換器,為變數指定規則。請看下面的例子:@app.route('/user/<username>') def show_user_profile(username): # show the user profile for that user return 'User %s' % escape(username) @app.route('/post/<int:post_id>') def show_post(post_id): # show the post with the given id, the id is an integer return 'Post %d' % post_id @app.route('/path/<path:subpath>') def show_subpath(subpath): # show the subpath after /path/ return 'Subpath %s' % escape(subpath)
轉換器型別:
string
(預設值) 接受任何不包含斜槓的文字 int
接受正整數 float
接受正浮點數 path
類似 string
,但可以包含斜槓(與string區分)uuid
接受 UUID 字串 ! 注意:
<converter:variable_name>
中間不能有空格,格式要一致
四、啟動伺服器
if __name__ == '__main__': app.run(debug=True)
1.伺服器啟動以後會進入輪詢,等待並處理請求(輪詢是用來解決伺服器壓力過大的問題的。如果保持多個長連線,伺服器壓力會過大,因此。專門建立一個輪詢請求的介面,裡面只保留一個任務id,只需要傳送任務id,就可以獲取當前任務的情況。如果返回了結果,輪詢結束,沒有返回則等待一會兒,繼續傳送請求。 )
2.把debug引數設定為True,啟用除錯模式
3.在瀏覽器上輸入網址,如果是生成的初始網址,並且URL帶了變數,這時先會返回錯誤,因為生成的初始網址裡面沒有變數,例如應該加上/user/44654。其中的<>也要去掉