本文實例講述了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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。