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 的一部分標(biāo)記為 <variable_name> 就可以在 URL 中添加變量。標(biāo)記的部分會作為關(guān)鍵字參數(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 唯一,并有助于搜索引擎重復(fù)索引同一頁面
3、URL 構(gòu)建
url_for() 函數(shù)用于構(gòu)建指定函數(shù)的 URL。 它把函數(shù)名稱作為第一個 參數(shù)。它可以接受任意個關(guān)鍵字參數(shù),每個關(guān)鍵字參數(shù)對應(yīng) 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
到此這篇關(guān)于Python的Flask框架路由實現(xiàn)詳解的文章就介紹到這了,更多相關(guān)Flask 路由內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
跟老齊學(xué)Python之傳說中的函數(shù)編寫條規(guī)
在使用函數(shù)的時候,首先要把它放在對象的層面考量,它不是什么特殊的東西,盡管我們使用了不少篇幅講述它,但它終歸還是一個對象。2014-10-10
python實現(xiàn)數(shù)據(jù)挖掘中分箱的示例代碼
數(shù)據(jù)分箱(英語:Data?binning)是一種數(shù)據(jù)預(yù)處理方法,用于最大限度地減少小觀測誤差的影響,本文主要為大家介紹了python實現(xiàn)數(shù)據(jù)分箱的相關(guān)知識,感興趣的可以了解下2024-01-01
Python中的可視化設(shè)計與UI界面實現(xiàn)
本文介紹了如何使用Python創(chuàng)建用戶界面(UI),包括使用Tkinter、PyQt、Kivy等庫進行基本窗口、動態(tài)圖表和動畫效果的實現(xiàn),通過示例代碼,展示了如何利用這些庫來構(gòu)建功能強大且美觀的界面2025-01-01
Python報錯ValueError:?cannot?convert?float?NaN?to?intege
在Python編程中,我們經(jīng)常需要處理各種數(shù)據(jù)類型,包括浮點數(shù)和整數(shù),然而,有時候我們可能會遇到一些意外的情況,比如將一個包含NaN(Not?a?Number)的浮點數(shù)轉(zhuǎn)換為整數(shù)時,就會拋出錯誤,本文將探討這個錯誤的原因,并給出幾種可能的解決方案,需要的朋友可以參考下2024-09-09
python使用pandas讀xlsx文件的實現(xiàn)
這篇文章主要介紹了python使用pandas讀xlsx文件的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
Python實現(xiàn)圖片和base64轉(zhuǎn)換詳解
這篇文章主要介紹了Python實現(xiàn)圖片和base64轉(zhuǎn)換詳解,Base64是一種二進制到文本的編碼方式,如果要更具體一點的話,可以認為它是一種將 byte數(shù)組編碼為字符串的方法,而且編碼出的字符串只包含ASCII基礎(chǔ)字符,需要的朋友可以參考下2024-01-01

