Flask框架URL管理操作示例【基于@app.route】
本文實(shí)例講述了Flask框架URL管理操作。分享給大家供大家參考,具體如下:
動(dòng)態(tài)URL規(guī)則
URL規(guī)則可以添加變量部分,也就是將符合同種規(guī)則的URL抽象成一個(gè)URL模式,如“/item/1/”,“/item2/”,假如不抽象,我們就得這樣寫:
@app.route("/item/1/")
動(dòng)態(tài)URL寫法:
@app.route("/item1/<id>/") def item1(id): pass
尖括號(hào)的內(nèi)容是動(dòng)態(tài)的,凡是匹配到的/item/前綴的URL都會(huì)被映射到這個(gè)路由上,在內(nèi)部把id作為參數(shù)而獲得。它使用了特殊的字段標(biāo)記,默認(rèn)類型是字符串。如果需要制定參數(shù)類型需要標(biāo)記成這樣的格式,converter有下面幾種:
- string:接收任何沒有斜杠”/”的文本(默認(rèn))
- int:接收整數(shù)
- float:同int,但是接收浮點(diǎn)數(shù)
- path:和默認(rèn)的相似,但也接收斜杠
- uuid:只接受uuid字符串
- any:可以指定多種路徑,但是需要傳入?yún)?shù)
@app.route("/any(a,b):page_info") def page_info(page_info): pass
訪問/a/和訪問/b/都符合這個(gè)規(guī)則,如果不希望定制子路徑,還可以通過傳遞參數(shù)的方式,例如:/item1?name=laowang。默認(rèn)使用的是GET
方法才能請(qǐng)求,開發(fā)者可以通過request.args.get("name")
。如果需設(shè)定使用POST
請(qǐng)求,在URL后面,添加methods=["POST"]
,如app.route("/item1",methods=["POST"])
,開發(fā)者可以使用 request.form.get('name')
獲得傳入的name的值。
唯一URL
Flask的URL規(guī)則基于Werkzeug的路由模塊。這個(gè)模塊背后的思想是基于Apache以及更早的HTTP服務(wù)器的主張,希望保證優(yōu)雅且唯一的URL。
舉個(gè)栗子:
@app.route("/about/") def about(): ...
上述栗子像一個(gè)文件系統(tǒng)中的文件夾,訪問一個(gè)結(jié)尾不帶斜線的URL會(huì)被重定向到帶斜線的規(guī)范的URL上去,這樣也有助于避免搜索引擎引同一個(gè)頁面兩次.
再舉個(gè)栗子:
@app.route("/about") def about(): ...
URL不帶斜線,當(dāng)用戶訪問帶斜線的URL”/about/”會(huì)產(chǎn)生一個(gè)Not Found的錯(cuò)誤。
希望本文所述對(duì)大家基于Flask框架的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
簡(jiǎn)單了解python關(guān)鍵字global nonlocal區(qū)別
這篇文章主要介紹了簡(jiǎn)單了解python關(guān)鍵字global nonlocal區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Python的Flask框架標(biāo)配模板引擎Jinja2的使用教程
Jinja2是Python世界的一款高人氣template engine,是許多開源Web框架的選擇,包括Flask這樣的明星級(jí)項(xiàng)目,這里我們就來共同學(xué)習(xí)Python的Flask框架標(biāo)配模板引擎Jinja2的使用教程2016-07-07Python使用DPKT實(shí)現(xiàn)分析數(shù)據(jù)包
dpkt項(xiàng)目是一個(gè)Python模塊,主要用于對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行解析和操作,z這篇文章主要為大家介紹了python如何利用DPKT實(shí)現(xiàn)分析數(shù)據(jù)包,有需要的可以參考下2023-10-10Pycharm 2to3配置,python2轉(zhuǎn)python3方式
這篇文章主要介紹了Pycharm 2to3配置,python2轉(zhuǎn)python3方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Python數(shù)據(jù)結(jié)構(gòu)與算法之算法分析詳解
算法分析的主要目標(biāo)是從運(yùn)行時(shí)間和內(nèi)存空間消耗等方面比較算法。本文將為大家詳細(xì)介紹Python數(shù)據(jù)結(jié)構(gòu)與算法中的算法分析,需要的可以參考一下2021-12-12pycharm2021激活碼使用教程(永久激活親測(cè)可用)
pycharm2021激活碼是一個(gè)可以輕松幫助用戶免費(fèi)激活pycharm2021.1軟件的文件,雖然說pycharm現(xiàn)在只是推出了2021.1的EAP版,但是如果你想先率先體驗(yàn)一波,那么就可以利用小編提供的這個(gè)激活碼來進(jìn)行使用啦,并這個(gè)激活碼是永久有效的2021-03-03