1. 程式人生 > 其它 >Flask框架第五篇.Flask 中的路由

Flask框架第五篇.Flask 中的路由

1 endpoint

Flask路由https://www.cnblogs.com/DragonFire/p/9260295.html

反向url地址,預設為檢視函式名 (url_for)

from flask import url_for
​
@app.route("/info", methods=["GET", "POST"], endpoint="r_info")
def student_info():
    print(url_for("r_info"))  # /info
    stu_id = int(request.args["id"])
    return f"Hello Old boy {stu_id}
" # Python3.6的新特性 f"{變數名}"

2.flask中的路由

rule       #"/login" 路由地址
methods    #允許進入檢視函式的請求方式
endpoint   #路由地址和 endpoint之間的 -- 路由地址和檢視函式Mapping endpoint在同一個app中不能出現重複,預設值是檢視函式名
defaults   #預設路由引數
strict_slashes=False   #是否嚴格遵循路由匹配規則,預設是True
redirect_to="/"        #永久重定向  308   301
methods=["GET","POST","
options"] #八種請求方式 #http八種請求方式 get:向伺服器請求指定的資源 post:向伺服器提交資料請求處理,資料被包含在請求中 put:向伺服器上傳指定的資料 delete:向伺服器傳送請求刪除指定資料 options:返回伺服器對指定資源資料支援的HTTP請求方法,一般用於測試伺服器功能的可用性 head:返回伺服器上對指定資源資料的HTTP請求頭,在不需要返回全部資料的情況下測試指定功能大可用性 track:回顯伺服器收到的請求,只要進行功能測試診斷 connect:HTTP1.1協議中預留請求方式,可以將連線改為管道方式到的代理伺服器

3. 動態生成路由

import
os from flask import Flask, render_template, Markup, request, session, redirect, url_for, send_file ​ app = Flask(__name__) # app.config["DEBUG"] = True app.debug = True app.secret_key = "!@#$%^(*&^%$#@#$%&*(^$WQ*(^EWET*^EWEU" ​ ​ @app.route("/get_music/<filename>") def get_music(filename): #可以分頁,獲取檔案,解決分類,解決正則路由問題 filename = "1.mp3" filepath = os.path.join("music",filename) return send_file(filepath) ​ @app.route("/get_img/<filename>") def get_img(filename): filepath = os.path.join("img", filename) return send_file(filepath) ​ if __name__ == '__main__': app.run("0.0.0.0",9527)