flask裡的路由變數 動態URL

2021-08-28 20:44:15 字數 1357 閱讀 9271

有時我們需要將同一類 url 對映到同乙個檢視函式處理,比如:使用同乙個檢視函式來顯示不同使用者的個人資訊。這時可以設定路由變數讓檢視函式可以繫結動態url。

# 設定路由變數  格式:  《路由變數》

def user_info(user_id):

return 'hello %s' % user_id

在 web 開發中,可能會出現限制使用者訪問規則的場景,那麼這個時候就需要用到正則匹配,根據自己的規則限定url的動態部分的格式, 滿足格式的動態url才可以呼叫檢視函式

具體實現步驟為:

**實現

from werkzeug.routing import baseconverter

# 自定義正則轉換器類

class regexconverter(baseconverter):

def __init__(self, url_map, *args):

super(regexconverter, self).__init__(url_map)

# 將接受的第1個引數當作匹配規則進行儲存

self.regex = args[0]

# 將自定義轉換器新增到轉換器字典中,並指定轉換器使用時名字為: re

def user_info(user_id):

return "user_id 為 %s" % user_id

執行測試: ,如果訪問的url不符合規則,會提示找不到頁面

自定義轉換器的兩個函式

繼承於自定義轉換器之後,還可以實現 to_python 和 to_url 這兩個函式去對路由變數做進一步處理:

class regexconverter(baseconverter):

def __init__(self, url_map, *args):

super(regexconverter, self).__init__(url_map)

# 將接受的第1個引數當作匹配規則進行儲存

self.regex = args[0]

def to_python(self, value):

return int(value)

執行測試,在檢視函式中可以檢視引數的型別,由之前預設的 str 已變成 int 型別的值

系統自帶轉換器

default_converters =
系統自帶的轉換器具體使用方式在每種轉換器的注釋**中有寫,請留意每種轉換器初始化的引數。

Flask以正則的方式匹配動態路由

在flask預設的路由匹配規則中,乙個動態的路由可以匹配int,float,path三種型別 例如 匹配path的情況 defuser username 匹配int的情況 defuser user id 匹配path的情況 defuser user weighht 而在某些特定的需求下,需要動態匹配...

Flask 中的路由與反向路由

之後 定義乙個函式,該函式名也是用來給特定函式生成 urls,並且返回我們想要顯示在使用者瀏覽器上的資訊。from flask import flask,request,url for defhello world return hello world defhello user return he...

flask管理不同的路由

重點看views中新增多個路由檔案。原文 flask 用 藍圖 blueprints 的概念來在乙個應用中或跨應用製作應用元件和支援通用的模式。藍圖很好地簡化了大型應用工作的方式,並提供給 flask 擴充套件在應用上註冊操作的核心方法。乙個blueprint 物件與flask 應用物件的工作方式很...