您好,登錄后才能下訂單哦!
今天來學(xué)習Flask中URL和視圖的相關(guān)知識。
URL不多說了,訪問網(wǎng)站,瀏覽器中的地址大家都可以看到,比如我的51CTO的blog網(wǎng)址是:https://blog.51cto.com/jiaszwx
如果你在地址欄里敲:https://blog.51cto.com/ 那么瀏覽器返回的是51CTO博客的主頁。
如果你在地址欄里敲:https://blog.51cto.com/jiaszwx 那么瀏覽器返回的是我的51CTO博客主頁。
一個網(wǎng)站地址有共同的前綴,但是有很多的子網(wǎng)頁,不同的子網(wǎng)頁就是通過URL里的參數(shù)來表示的,例如上面的例子。重點來了,在Flask當中,如何來表示URL的參數(shù)呢?記住,一定要用尖括號括起來。例如:<id>,<name>,<location>.......,那么放到哪里呢?放到路由的括號里。 要像這樣:@app.route('/article/<id>')
這個是重點?。。。。?br/>URL中的參數(shù)一定要用尖括號括起來!
URL中的參數(shù)一定要用尖括號括起來!
URL中的參數(shù)一定要用尖括號括起來!
重要的事情說三遍。。。
OK!現(xiàn)在參數(shù)定義好了,那如何跟視圖函數(shù)對應(yīng)起來呢?直接作為視圖函數(shù)的參數(shù)傳給它就好了,如下:
@app.route('/article/<id>') #URL的參數(shù)表示方法
def article(id): #在視圖函數(shù)中直接引用URL中的參數(shù)即可得到參數(shù)的值
return "Your request parameter is %s" %id
來看一個實際例子,完整代碼如下:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_flask():
return "Hello World! This is my first Flask! Welcome to Flask! Flask is Fun and Easy to setup!"
@app.route('/article/<id>') #URL的參數(shù)表示方法
def article(id): #在視圖函數(shù)中直接引用URL中的參數(shù)即可得到參數(shù)的值
return "Your request parameter is %s" %id
if __name__ == '__main__':
app.run(debug=True)
實際效果見下圖:
在地址欄中輸入:http://127.0.0.1:5000/ 會顯示下面的頁面:
在地址欄中輸入帶參數(shù)的URL:http://127.0.0.1:5000/article/asdf111223 則會顯示下面的頁面:
/article/ 后面的參數(shù)是任意的,現(xiàn)在是手動輸入,但是現(xiàn)實中都是從數(shù)據(jù)庫中直接取出來的,現(xiàn)在只要了解如何來定義URL參數(shù)就可以了,后面數(shù)據(jù)從哪里來,還是你說了算。
繼續(xù)再跟個例子,加深一下印象。這次加一個名字參數(shù),代碼如下:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_flask():
return "Hello World! This is my first Flask! Welcome to Flask! Flask is Fun and Easy to setup!"
@app.route('/article/<id>')
def article(id):
return "Your request parameter is %s" %id
@app.route('/userinfo/<name>')
def userinfo(name):
return "User name is: %s" %name
if __name__ == '__main__':
app.run(debug=True)
運行一下,各位客官老爺看一下效果:
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。