您好,登錄后才能下訂單哦!
本文實例講述了Flask框架學習筆記之路由和反向路由。分享給大家供大家參考,具體如下:
#-*- coding:utf-8 -*- from flask import Flask, request, url_for app = Flask(__name__) # 路由 @app.route("/") # 視圖函數 def index(): return "<h2>Hello World!</h2>" # 新的user路由 @app.route("/user", methods = ['POST']) def hello_user(): return "<h2>Hello User!</h2>" # 動態路由。使用<>圈起來,輸入網址時輸入 @app.route("/users/<id>") # 傳入id參數 def user_id(id): return "<h2>Hello user: " + id # 也可以不傳參顯示動態參數 @app.route("/query_user") def query_user(): id = request.args.get('id') return "query_user: " + id # 反向路由,通過視圖函數反導出url地址 @app.route("/query_url") def query_url(): return "query_url: " + url_for('query_user') if __name__ == '__main__': app.run()
最基礎的路由:@app.route('/')
,也為根路由,程序運行后使用瀏覽器打開http://127.0.0.1:5000/即可訪問。
# 路由 @app.route("/") # 視圖函數 def index(): return "<h2>Hello World!</h2>"
視圖函數就是被當前路由所修飾的函數,return
返回html相關內容。
路由也可以修改當前的http方法來打開,flask路由默認的http方法是GET,這里使用methods=['POST']
將http方法改為POST。
訪問網頁時要更改http方法:
# 新的user路由 @app.route("/user", methods = ['POST']) def hello_user(): return "<h2>Hello User!</h2>"
flask路由也可接受動態參數,動態參數需要使用<>
包裹表示。
# 動態路由。使用<>圈起來,輸入網址時輸入 @app.route("/users/<id>") # 傳入id參數 def user_id(id): return "<h2>Hello user: " + id
需要在網址后輸入任意合法的值來傳入動態參數。
也可以使用request
方法實現動態參數傳遞。
# 也可以不傳參顯示動態參數 @app.route("/query_user") def query_user(): id = request.args.get('id') return "query_user: " + id
輸入網址時最后要加上?id=任意值,即可達到目的。
反路由通過視圖函數表現出url地址,需使用url_for方法指向一個url。
# 反向路由,通過視圖函數反導出url地址 @app.route("/query_url") def query_url(): return "query_url: " + url_for('query_user')
本質是根據函數名反向生成url,使用函數 url_for()
來針對一個特定的函數構建一個 URL。它能夠接受函數名作為第一參數,以及一些關鍵字參數, 每一個關鍵字參數對應于 URL 規則的變量部分。未知變量部分被插入到 URL 中作為查詢參數。
這里用到了chrome瀏覽器的一個postman插件,具體安裝方法參考https://segmentfault.com/a/1190000008512891
希望本文所述對大家基于flask框架的Python程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。