W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
通過向規(guī)則參數(shù)添加變量部分,可以動(dòng)態(tài)構(gòu)建URL。
此變量部分標(biāo)記為<variable-name> 。
它作為關(guān)鍵字參數(shù)傳遞給與規(guī)則相關(guān)聯(lián)的函數(shù)。
在以下示例中,route()裝飾器的規(guī)則參數(shù)包含附加到URL '/hello' 的<name>。
因此,如果在瀏覽器中輸入http://localhost:5000/hello/w3cschool作為URL,則'w3cschool'將作為參數(shù)提供給 hello()函數(shù)。
from flask import Flask
app = Flask(__name__)
@app.route('/hello/<name>')
def hello_name(name):
return 'Hello %s!' % name
if __name__ == '__main__':
app.run(debug = True)
將上述腳本保存為hello.py并從Python shell運(yùn)行它。
接下來,打開瀏覽器并輸入U(xiǎn)RL http:// localhost:5000/hello/w3cschool。
以下輸出將顯示在瀏覽器中:
Hello w3cschool!
除了默認(rèn)字符串變量部分之外,還可以使用以下轉(zhuǎn)換器構(gòu)建規(guī)則:
序號(hào) | 轉(zhuǎn)換器 | 描述 |
---|---|---|
1 |
int |
接受整數(shù) |
2 |
float |
對(duì)于浮點(diǎn)值 |
3 |
path
|
接受用作目錄分隔符的斜杠 |
在下面的代碼中,使用了所有這些構(gòu)造函數(shù):
from flask import Flask
app = Flask(__name__)
@app.route('/blog/<int:postID>')
def show_blog(postID):
return 'Blog Number %d' % postID
@app.route('/rev/<float:revNo>')
def revision(revNo):
return 'Revision Number %f' % revNo
if __name__ == '__main__':
app.run()
從Python Shell運(yùn)行上面的代碼。訪問瀏覽器中的URL http://localhost:5000/blog/11。
給定的數(shù)字用作show_blog()函數(shù)的參數(shù)。瀏覽器顯示以下輸出:
Blog Number 11
在瀏覽器中輸入此URL - http://localhost:5000/rev/1.1
revision()函數(shù)將浮點(diǎn)數(shù)作為參數(shù)。以下結(jié)果顯示在瀏覽器窗口中:
Revision Number 1.100000
Flask的URL規(guī)則基于Werkzeug的路由模塊。
這確保形成的URL是唯一的,并且基于Apache規(guī)定的先例。
考慮以下腳本中定義的規(guī)則:
from flask import Flask
app = Flask(__name__)
@app.route('/flask')
def hello_flask():
return 'Hello Flask'
@app.route('/python/')
def hello_python():
return 'Hello Python'
if __name__ == '__main__':
app.run()
這兩個(gè)規(guī)則看起來類似,但在第二個(gè)規(guī)則中,使用斜杠(/)。因此,它成為一個(gè)規(guī)范的URL。因此,使用 /python 或 /python/返回相同的輸出。
但是,如果是第一個(gè)規(guī)則,/flask/ URL會(huì)產(chǎn)生“404 Not Found”頁(yè)面。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: