1. 程式人生 > >基於Flask框架搭建視訊網站的學習日誌(二)

基於Flask框架搭建視訊網站的學習日誌(二)

基於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。其中的<>也要去掉