Python的Flask框架路由實現(xiàn)詳解
一、路由
通過URL訪問一個網(wǎng)頁,使用 route() 裝飾器把函數(shù)綁定到 URL
使用 route() 裝飾器把函數(shù)綁定URL示例:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Index Page'
@app.route('/hello')
def hello():
return 'Hello, World'
if __name__ == '__main__':
app.run()運行flask后,可打開本地路徑進行訪問
訪問路徑://127.0.0.1:5000/

訪問路徑://127.0.0.1:5000/hello

二、URL變量
1、變量規(guī)則
通過把 URL 的一部分標記為 <variable_name> 就可以在 URL 中添加變量。標記的部分會作為關鍵字參數(shù)傳遞給函數(shù)。通過使用 converter:variable_name ,可以選擇性的加上一個轉(zhuǎn)換器,為變量指定規(guī)則
from markupsafe import escape
from flask import Flask
app = Flask(__name__)
@app.route('/user/<username>')
def show_user_profile(username):
# show the user profile for that user
return f'User {escape(username)}'
@app.route('/post/<int:post_id>')
def show_post(post_id):
# show the post with the given id, the id is an integer
return f'Post {post_id}'
@app.route('/path/<path:subpath>')
def show_subpath(subpath):
# show the subpath after /path/
return f'Subpath {escape(subpath)}'
if __name__ == '__main__':
app.run()url支持的變量類型:
| 類型 | 說明 |
| string | (缺省值) 接受任何不包含斜杠的文本 |
| int | 接受正整數(shù) |
| float | 接受浮點數(shù) |
| path | 類似 string ,但可以包含斜杠 |
| uuid | 接受 UUID 字符串 |
訪問路徑//127.0.0.1:5000/user/盤盤

2、唯一的 URL / 重定向行為
代碼如下(示例):
@app.route('/projects/')
def projects():
return 'The project page'
@app.route('/about')
def about():
return 'The about page'projects 的 URL 是中規(guī)中矩的,尾部有一個斜杠,看起來就如同一個文件夾。訪問一個沒有斜杠結(jié)尾的 URL ( /projects )時 Flask 會自動進行重定向,自動在尾部加上一個斜杠( /projects/ )
about 的 URL 沒有尾部斜杠,因此其行為表現(xiàn)與一個文件類似。如果訪問這個 URL 時添加了尾部斜杠( /about/ )就會得到一個 404 “未找到” 錯誤。這樣可以保持 URL 唯一,并有助于搜索引擎重復索引同一頁面
3、URL 構建
url_for() 函數(shù)用于構建指定函數(shù)的 URL。 它把函數(shù)名稱作為第一個 參數(shù)。它可以接受任意個關鍵字參數(shù),每個關鍵字參數(shù)對應 URL 中的變量
from flask import url_for
app = Flask(__name__)
@app.route('/')
def index():
return 'index'
@app.route('/login')
def login():
return 'login'
@app.route('/user/<username>')
def profile(username):
return f'{username}\'s profile'
with app.test_request_context():
print(url_for('index'))
print(url_for('login'))
print(url_for('login', next='/'))
print(url_for('profile', username='John Doe'))輸出:
/
/login
/login?next=/
/user/John%20Doe
到此這篇關于Python的Flask框架路由實現(xiàn)詳解的文章就介紹到這了,更多相關Flask 路由內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python中實現(xiàn)json數(shù)據(jù)和類對象相互轉(zhuǎn)化的四種方式
在日常的軟件測試過程中,測試數(shù)據(jù)的構造是一個占比非常大的活動,對于測試數(shù)據(jù)的構造,分為結(jié)構化的數(shù)據(jù)構造方式和非結(jié)構化的數(shù)據(jù)構造方式,此篇文章,會通過4種方式來展示json數(shù)據(jù)與python的類對象相互轉(zhuǎn)化,需要的朋友可以參考下2024-07-07
用python介紹4種常用的單鏈表翻轉(zhuǎn)的方法小結(jié)
這篇文章主要介紹了用python介紹4種常用的單鏈表翻轉(zhuǎn)的方法小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-02-02
Python實現(xiàn)對象轉(zhuǎn)換為xml的方法示例
這篇文章主要介紹了Python實現(xiàn)對象轉(zhuǎn)換為xml的方法,結(jié)合實例形式分析了Python對象屬性、節(jié)點的操作及與xml相互轉(zhuǎn)換的相關實現(xiàn)技巧,需要的朋友可以參考下2017-06-06
以windows service方式運行Python程序的方法
這篇文章主要介紹了以windows service方式運行Python程序的方法,可實現(xiàn)將Python程序變成windows服務的功能,需要的朋友可以參考下2015-06-06
Django+Celery實現(xiàn)動態(tài)配置定時任務的方法示例
這篇文章主要介紹了Django + Celery 實現(xiàn)動態(tài)配置定時任務的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05
Python圖片視頻超分模型RealBasicVSR的使用教程
這篇文章主要和大家分享一個有意思的模型:RealBasicVSR。這個模型可以實現(xiàn)圖片或視頻的超分處理,感興趣的小伙伴可以跟隨小編一起學習一下2022-05-05

