【Flask】路由和URL
一、路由
@app.route('/index') #路由 def view_function(): #視圖函數(shù)return "hello kobe" #響應(yīng)在程序中獲取路由信息
在應(yīng)用中的url_map屬性中保存著整個(gè)Flask應(yīng)用的路由映射信息,可以通過讀取這個(gè)屬性獲取路由信息
如果想在程序中遍歷路由信息,可以采用如下方式
for rule in app.url_map.iter_rules(): print('name={} path={}'.format(rule.endpoint, rule.rule))二、需求
通過訪問/地址,以json的方式返回應(yīng)用內(nèi)的所有路由信息
實(shí)現(xiàn)
三、動(dòng)態(tài)路由(URL路徑參數(shù))
動(dòng)態(tài)路由就是把請(qǐng)求參數(shù)作為路由中url的一部分
例如,有一個(gè)請(qǐng)求訪問的接口地址為/users/123,其中123實(shí)際上為具體的請(qǐng)求參數(shù),表明請(qǐng)求123號(hào)用戶的信息。此時(shí)如何從url中提取出123的數(shù)據(jù)?
Flask不同于Django直接在定義路由時(shí)編寫正則表達(dá)式的方式,而是采用轉(zhuǎn)換器語法:
@app.route('/users/<user_id>') def user_info(user_id):print(type(user_id))return 'hello user {}'.format(user_id)此處的<>即是一個(gè)轉(zhuǎn)換器,默認(rèn)為字符串類型,即將該位置的數(shù)據(jù)以字符串格式進(jìn)行匹配、并以字符串為數(shù)據(jù)類型類型、 user_id為參數(shù)名傳入視圖。
轉(zhuǎn)換器:負(fù)責(zé)提取動(dòng)態(tài)url中的id數(shù)據(jù),并且把id數(shù)據(jù)傳給視圖函數(shù)
案例1:
訪問路徑為:http://192.168.112.217:8080/user/24
案例2:
訪問路徑:http://192.168.112.217:8080/user/-3,頁面404,
原因@app.route(’/user/<int(min=1):user_id>’)中min=1設(shè)置為user_id最小為1,當(dāng)url中傳入的值小于1時(shí),會(huì)報(bào)404
四、Flask也提供其他類型的轉(zhuǎn)換器
DEFAULT_CONVERTERS = { 'default': UnicodeConverter, 'string': UnicodeConverter, 'any': AnyConverter, 'path': PathConverter, 'int': IntegerConverter, 'float': FloatConverter, 'uuid': UUIDConverter, }總結(jié)
以上是生活随笔為你收集整理的【Flask】路由和URL的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Flask】url_for函数
- 下一篇: 【Flask】request请求