flask框架路由常用定義方式總結(jié)
本文實(shí)例講述了flask框架路由常用定義方式。分享給大家供大家參考,具體如下:
路由的各種定義方式
請(qǐng)求方式限定
使用 methods 參數(shù)指定可接受的請(qǐng)求方式,可以是多種
@app.route('/',methods=['GET'])
def hello():
return '<h1>hello world</h1>'
路由查找方式
同一路由指向兩個(gè)不同的函數(shù),在匹配過(guò)程中,至上而下依次匹配
@app.route('/')
def hello():
return '<h1>hello world</h1>'
@app.route('/')
def hello_2017():
return '<h1>hello 2017</h1>'
所以上面路由 / 輸出的結(jié)果為 hello 函數(shù)的結(jié)果
給路由傳參示例
有時(shí)我們需要將同一類(lèi)URL映射到同一個(gè)視圖函數(shù)處理,比如:使用同一個(gè)視圖函數(shù) 來(lái)顯示不同用戶的個(gè)人信息。
路由傳遞的參數(shù)默認(rèn)當(dāng)做string處理,這里指定int,尖括號(hào)中的內(nèi)容是動(dòng)態(tài)的,也可不指定類(lèi)型
@app.route('/user/<int:id>')
def hello_itheima(id):
return 'hello itcast %d' %id
重定向redirect示例
from flask import redirect
@app.route('/')
def hello_itheima():
return redirect('http://www.itcast.cn')
返回JSON
from flask import Flask,json
@app.route('/json')
def do_json():
hello = {"name":"stranger", "say":"hello"}
return json.dumps(hello)
返回狀態(tài)碼示例
在 Python 中返回狀態(tài)碼有兩種方式實(shí)現(xiàn):
- 直接return
- 可以自定義返回狀態(tài)碼,可以實(shí)現(xiàn)不符合http協(xié)議的狀態(tài)碼,例如:error=666,errmsg='查詢(xún)數(shù)據(jù)庫(kù)異常',其作用是為了實(shí)現(xiàn)前后端數(shù)據(jù)交互的方便
- abort方法
- 只會(huì)拋出符合http協(xié)議的異常狀態(tài)碼,用于手動(dòng)拋出異常
@app.route('/')
def hello_itheima():
return 'hello itcast',666
正則路由示例
在web開(kāi)發(fā)中,可能會(huì)出現(xiàn)限制用戶訪問(wèn)規(guī)則的場(chǎng)景,那么這個(gè)時(shí)候就需要用到正則匹配,限制訪問(wèn),優(yōu)化訪問(wèn)
導(dǎo)入轉(zhuǎn)換器包
from werkzeug.routing import BaseConverter
自定義轉(zhuǎn)換器并實(shí)現(xiàn)
# 自定義轉(zhuǎn)換器
class Regex_url(BaseConverter):
def __init__(self,url_map,*args):
super(Regex_url,self).__init__(url_map)
self.regex = args[0]
app = Flask(__name__)
# 將自定義轉(zhuǎn)換器類(lèi)添加到轉(zhuǎn)換器字典中
app.url_map.converters['re'] = Regex_url
@app.route('/user/<re("[a-z]{3}"):id>')
def hello_itheima(id):
return 'hello %s' %id
自帶幾種轉(zhuǎn)換器
DEFAULT_CONVERTERS = {
'default': UnicodeConverter,
'string': UnicodeConverter,
'any': AnyConverter,
'path': PathConverter,
'int': IntegerConverter,
'float': FloatConverter,
'uuid': UUIDConverter,
}
希望本文所述對(duì)大家基于flask框架的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
Selenium python時(shí)間控件輸入問(wèn)題解決方案
這篇文章主要介紹了Selenium python時(shí)間控件輸入問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
解決keras+flask模型的重復(fù)調(diào)用出錯(cuò)ValueError: Tensor is n
這篇文章主要介紹了解決keras+flask模型的重復(fù)調(diào)用出錯(cuò)ValueError: Tensor is not an element of this graph問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
一文帶你學(xué)會(huì)如何利用Python實(shí)現(xiàn)一個(gè)三維繪圖系統(tǒng)
tkinter是Python標(biāo)準(zhǔn)庫(kù)中自帶的GUI工具,使用十分方便,所以本文旨在帶大家學(xué)會(huì)如何將matplotlib嵌入到tkinter中并繪制三維繪圖系統(tǒng),感興趣的可以了解下2023-09-09
解決更新tensorflow后應(yīng)用tensorboard報(bào)錯(cuò)的問(wèn)題
這篇文章主要介紹了解決更新tensorflow后應(yīng)用tensorboard報(bào)錯(cuò)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 UI主線程與耗時(shí)線程分離詳細(xì)方法實(shí)例
這篇文章主要介紹了python GUI庫(kù)圖形界面開(kāi)發(fā)之PyQt5 UI主線程與耗時(shí)線程分離詳細(xì)方法實(shí)例,需要的朋友可以參考下2020-02-02
virtualenv隔離Python環(huán)境的問(wèn)題解析
virtualenv為應(yīng)用提供了隔離的Python運(yùn)行環(huán)境,解決了不同應(yīng)用間多版本的沖突問(wèn)題,這篇文章主要介紹了virtualenv隔離Python環(huán)境,需要的朋友可以參考下2022-06-06

