1. 程式人生 > >115 flask的路由, 藍圖, flask例項配置, flask物件配置, 特殊裝飾器

115 flask的路由, 藍圖, flask例項配置, flask物件配置, 特殊裝飾器

主要內容:

1 flask路由:

  a : endpoing的講解:https://www.cnblogs.com/mikellxy1990/p/8439228.html

  b:  endpoint:預設是檢視函式名, 當請求到來的時候, 會先通過rule找到endpoint, 然後再根據endpoint找到對應的view_func.實際上endpoint就是一個identifier, 每一個檢視都是一個endpoint,當有請求到的時候,用來知道是哪一個檢視函式.

  c : 注意: flask是通過endpoint找到檢視函式, 並不是通過路由找到的;url_for(end_point)而不是(路由)

2 flask中的例項化配置

 http://www.cnblogs.com/songxuexiang/p/9507707.html
static_folder = 'static',  # 靜態檔案目錄的路徑 預設當前專案中的static目錄
static_url_path = None,  # 靜態檔案目錄的url路徑 預設不寫是與static_folder同名,遠端靜態檔案時複用
template_folder = 'templates'  # template模板目錄, 預設當前專案中的 templates 目錄

static_url_path主要用於改變url的path的,靜態檔案放在static下面,所以正常情況url是static/filename ,但是可以通過static_url_path來改變這個url
static_folder主要是用來改變url的目錄的,預設是static,可以通過這個變數來改變靜態檔案目錄。
 要是專案是前後端分離的話,那這裡的配置也就沒影響了。

3 app物件配置

  a : 自定義一個py檔案:

class Debug(object):
    DEBUG = True
    SECRET_KEY = "jin"
    SESSION_COOKIE_NAME = "jin's session"


class Testing(object):
    TESTING = True
    SECRET_KEY = "yinwangba"
    SESSION_COOKIE_NAME = "yinwangba's session"


class XianShang(object):
    SECRET_KEY = "KingEight"
    SESSION_COOKIE_NAME = "CSRF_TOKEN"

  b : 在app.py檔案中匯入: importsetting,   app.config.from_object(setting.Debug)

4 藍圖 blueprint

form flask import Blueprint
blue = Blueprint("blue_id",__name__,url_prefix)
url_prefix 字首
在app.py檔案中註冊藍圖
app.register_blueprint(blue)

5 特殊裝飾器:

@app.template_global()
@app.template_filter()
相當於django中的中介軟體, 但有一點是不同的: 就是如果before_request有一個停止, 對應的respnse,所有的都要執行, 而不是這一個. @app.before_request 請求進入檢視函式之前 @app.after_request def af1(response) return response 結束檢視函式之後,返回客戶端之前