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

