91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

flask框架路由常用定義方式總結

發布時間:2020-09-04 07:11:45 來源:腳本之家 閱讀:163 作者:笑-笑-生 欄目:開發技術

本文實例講述了flask框架路由常用定義方式。分享給大家供大家參考,具體如下:

路由的各種定義方式

請求方式限定

使用 methods 參數指定可接受的請求方式,可以是多種

@app.route('/',methods=['GET'])
def hello():
  return '<h2>hello world</h2>'

路由查找方式

同一路由指向兩個不同的函數,在匹配過程中,至上而下依次匹配

@app.route('/')
def hello():
  return '<h2>hello world</h2>'
@app.route('/')
def hello_2017():
  return '<h2>hello 2017</h2>'

所以上面路由 / 輸出的結果為 hello 函數的結果

給路由傳參示例

有時我們需要將同一類URL映射到同一個視圖函數處理,比如:使用同一個視圖函數 來顯示不同用戶的個人信息。

路由傳遞的參數默認當做string處理,這里指定int,尖括號中的內容是動態的,也可不指定類型

@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)

返回狀態碼示例

在 Python 中返回狀態碼有兩種方式實現:

- 直接return 
    - 可以自定義返回狀態碼,可以實現不符合http協議的狀態碼,例如:error=666,errmsg='查詢數據庫異常',其作用是為了實現前后端數據交互的方便
- abort方法
    - 只會拋出符合http協議的異常狀態碼,用于手動拋出異常

@app.route('/')
def hello_itheima():
  return 'hello itcast',666

正則路由示例

在web開發中,可能會出現限制用戶訪問規則的場景,那么這個時候就需要用到正則匹配,限制訪問,優化訪問

導入轉換器包

from werkzeug.routing import BaseConverter

自定義轉換器并實現

# 自定義轉換器
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程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沿河| 驻马店市| 扎赉特旗| 阜阳市| 拜泉县| 梨树县| 贡山| 崇仁县| 鹤岗市| 清镇市| 信阳市| 新平| 襄城县| 塔河县| 夹江县| 南宫市| 栾川县| 平定县| 诸城市| 沙湾县| 凭祥市| 益阳市| 九台市| 庄河市| 酒泉市| 庐江县| 岱山县| 会同县| 宁安市| 溧水县| 如皋市| 霍山县| 焉耆| 普兰县| 固安县| 海安县| 高淳县| 博乐市| 桐梓县| 丰镇市| 巴中市|