Flask框架學(xué)習(xí)筆記之路由和反向路由詳解【圖文與實(shí)例】
本文實(shí)例講述了Flask框架學(xué)習(xí)筆記之路由和反向路由。分享給大家供大家參考,具體如下:
#-*- coding:utf-8 -*-
from flask import Flask, request, url_for
app = Flask(__name__)
# 路由
@app.route("/")
# 視圖函數(shù)
def index():
return "<h1>Hello World!</h1>"
# 新的user路由
@app.route("/user", methods = ['POST'])
def hello_user():
return "<h1>Hello User!</h1>"
# 動(dòng)態(tài)路由。使用<>圈起來(lái),輸入網(wǎng)址時(shí)輸入
@app.route("/users/<id>")
# 傳入id參數(shù)
def user_id(id):
return "<h1>Hello user: " + id
# 也可以不傳參顯示動(dòng)態(tài)參數(shù)
@app.route("/query_user")
def query_user():
id = request.args.get('id')
return "query_user: " + id
# 反向路由,通過(guò)視圖函數(shù)反導(dǎo)出url地址
@app.route("/query_url")
def query_url():
return "query_url: " + url_for('query_user')
if __name__ == '__main__':
app.run()
最基礎(chǔ)的路由:@app.route('/'),也為根路由,程序運(yùn)行后使用瀏覽器打開http://127.0.0.1:5000/即可訪問(wèn)。
# 路由
@app.route("/")
# 視圖函數(shù)
def index():
return "<h1>Hello World!</h1>"

視圖函數(shù)就是被當(dāng)前路由所修飾的函數(shù),return返回html相關(guān)內(nèi)容。
路由也可以修改當(dāng)前的http方法來(lái)打開,flask路由默認(rèn)的http方法是GET,這里使用methods=['POST']將http方法改為POST。
訪問(wèn)網(wǎng)頁(yè)時(shí)要更改http方法:
# 新的user路由
@app.route("/user", methods = ['POST'])
def hello_user():
return "<h1>Hello User!</h1>"

flask路由也可接受動(dòng)態(tài)參數(shù),動(dòng)態(tài)參數(shù)需要使用<>包裹表示。
# 動(dòng)態(tài)路由。使用<>圈起來(lái),輸入網(wǎng)址時(shí)輸入
@app.route("/users/<id>")
# 傳入id參數(shù)
def user_id(id):
return "<h1>Hello user: " + id

需要在網(wǎng)址后輸入任意合法的值來(lái)傳入動(dòng)態(tài)參數(shù)。
也可以使用request方法實(shí)現(xiàn)動(dòng)態(tài)參數(shù)傳遞。
# 也可以不傳參顯示動(dòng)態(tài)參數(shù)
@app.route("/query_user")
def query_user():
id = request.args.get('id')
return "query_user: " + id

輸入網(wǎng)址時(shí)最后要加上?id=任意值,即可達(dá)到目的。
反路由通過(guò)視圖函數(shù)表現(xiàn)出url地址,需使用url_for方法指向一個(gè)url。
# 反向路由,通過(guò)視圖函數(shù)反導(dǎo)出url地址
@app.route("/query_url")
def query_url():
return "query_url: " + url_for('query_user')

本質(zhì)是根據(jù)函數(shù)名反向生成url,使用函數(shù) url_for() 來(lái)針對(duì)一個(gè)特定的函數(shù)構(gòu)建一個(gè) URL。它能夠接受函數(shù)名作為第一參數(shù),以及一些關(guān)鍵字參數(shù), 每一個(gè)關(guān)鍵字參數(shù)對(duì)應(yīng)于 URL 規(guī)則的變量部分。未知變量部分被插入到 URL 中作為查詢參數(shù)。
這里用到了chrome瀏覽器的一個(gè)postman插件,具體安裝方法參考https://segmentfault.com/a/1190000008512891
希望本文所述對(duì)大家基于flask框架的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python中__call__內(nèi)置函數(shù)用法實(shí)例
這篇文章主要介紹了python中__call__內(nèi)置函數(shù)用法,實(shí)例分析了python中__call__內(nèi)置函數(shù)的原理與使用技巧,需要的朋友可以參考下2015-06-06
python代碼實(shí)現(xiàn)圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python代碼實(shí)現(xiàn)圖書管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
使用Python實(shí)現(xiàn)一個(gè)棧判斷括號(hào)是否平衡
棧(Stack)在計(jì)算機(jī)領(lǐng)域是一個(gè)被廣泛應(yīng)用的集合,棧是線性集合,訪問(wèn)都嚴(yán)格地限制在一段,叫做頂(top)。這篇文章主要介紹了使用Python實(shí)現(xiàn)一個(gè)棧判斷括號(hào)是否平衡,需要的朋友可以參考下2018-08-08
python的鏈表基礎(chǔ)知識(shí)點(diǎn)
在本篇文章里小編給大家整理的是一篇關(guān)于python的鏈表基礎(chǔ)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們可以參考學(xué)習(xí)下。2020-09-09
python3.9安裝RobotFramework的簡(jiǎn)單教程
python3.9安裝RobotFramework,不同于python2.7和python3.6,使用這兩個(gè)版本安裝會(huì)出現(xiàn)問(wèn)題,因?yàn)槲野惭b遇到問(wèn)題發(fā)現(xiàn)沒(méi)有最新的教程,所以打算自己寫一個(gè),同時(shí)下面會(huì)記錄安裝步驟及使用的方法會(huì)出現(xiàn)的一些問(wèn)題,對(duì)python3.9安裝RobotFramework感興趣的朋友一起看看吧2023-01-01
使用celery執(zhí)行Django串行異步任務(wù)的方法步驟
這篇文章主要介紹了使用celery執(zhí)行Django串行異步任務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Django具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06

