Flask 變量規(guī)則

可以通過將可變部分添加到規(guī)則參數(shù)來動態(tài)構(gòu)建URL。 這個變量部分被標(biāo)記為<variable-name>。 它作為關(guān)鍵字參數(shù)傳遞給規(guī)則所關(guān)聯(lián)的函數(shù)。

在以下示例中,route()裝飾器的規(guī)則參數(shù)包含附加到URL /hello的<name>變量部分。 因此,如果在瀏覽器中輸入URL: http://localhost:5000/hello/nhooo,那么 ‘nhooo’ 將作為參數(shù)提供給hello()函數(shù)。

參考如下代碼 -

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
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運行它。

接下來,打開瀏覽器并輸入URL => http://localhost:5000/hello/nhooo。在瀏覽器中將看到Hello nhooo

除了默認(rèn)的字符串變量部分之外,還可以使用以下轉(zhuǎn)換器構(gòu)造規(guī)則 -

編號轉(zhuǎn)換器描述
1int接受整數(shù)
2float對于浮點值
3path接受用作目錄分隔符的斜杠符(/)

在下面的代碼中,使用了所有這些構(gòu)造函數(shù)。

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
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運行上述代碼。 在瀏覽器中訪問URL => http:// localhost:5000/blog/11。

給定的數(shù)字值作為:show_blog()函數(shù)的參數(shù)。 瀏覽器顯示以下輸出 -

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
Blog Number 11

在瀏覽器中輸入此URL - http://localhost:5000/rev/1.1

revision()函數(shù)將浮點數(shù)作為參數(shù)。 以下結(jié)果出現(xiàn)在瀏覽器窗口中 -

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
Revision Number 1.100000

Flask的URL規(guī)則基于Werkzeug的路由模塊。 這確保了形成的URL是唯一的,并且基于Apache制定的先例。

考慮以下腳本中定義的規(guī)則 -

# Filename : example.py
# Copyright : 2020 By Nhooo
# Author by : www.soo66.com
# Date : 2020-08-08
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()

兩條規(guī)則看起來都很相似,但在第二條規(guī)則中,使用了尾部斜線(/)。 因此,它變成了一個規(guī)范的URL。 因此,使用/python或/python/返回相同的輸出。 但是,在第一條規(guī)則的情況下, URL:/flask/會導(dǎo)致404 Not Found頁面。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清