天天看點

python路由程式設計_Python路由

路由是将URL直接映射到建立網頁的代碼的機制。它有助于更好地管理網頁的結構,并顯着提高網站的性能,并且進一步的增強或修改将變得非常簡單。在python中,路由是在大多數網絡架構中實作的。我們将在本章中看到flask Web架構中的示例。

Flask路由

Flask中的route()裝飾器用于将URL綁定到函數。當在浏覽器中通路對應URL時,将執行該函數以給出結果。此處,URL => /hello規則綁定到hello_world()函數。如果使用者通路URL => http://localhost:5000/ ,則hello_world()函數的輸出将在浏覽器中顯示。

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello_world():

return 'Hello Yiibai'

if __name__ == '__main__':

app.run()

當運作上面的程式時,得到以下輸出-

* Serving Flask app "flask_route" (lazy loading)

* Environment: production

WARNING: Do not use the development server in a production environment.

Use a production WSGI server instead.

* Debug mode: off

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

127.0.0.1 - - [06/Aug/2019 09:48:45] "GET / HTTP/1.1" 200 -

127.0.0.1 - - [06/Aug/2019 09:48:46] "GET /favicon.ico HTTP/1.1" 404 -

127.0.0.1 - - [06/Aug/2019 09:48:46] "GET /favicon.ico HTTP/1.1" 404 -

打開浏覽器并指向URL=> http://localhost:5000/以檢視函數執行的結果。

2. 使用URL變量

我們可以使用路由傳遞URL變量以動态建構URL。使用url_for()函數,該函數将函數名稱作為第一個參數,并将其餘參數作為URL規則的可變部分。

在下面的示例中,我們将函數名稱作為參數傳遞給url_for()函數,并在執行這些行時列印出結果。

from flask import Flask, url_for

app = Flask(__name__)

@app.route('/')

def index(): pass

@app.route('/login')

def login(): pass

@app.route('/user/')

def profile(username): pass

with app.test_request_context():

print url_for('index')

print url_for('index', _external=True)

print url_for('login')

print url_for('login', next='/')

print url_for('profile', username='fit su')

當我們運作上面的程式時,得到以下輸出-

/

http://localhost/

/login

/login?next=%2F

/user/fit%20su

3. 重定向

可以使用重定向功能通過路由将使用者重定向到另一個URL。提到了新的URL作為函數的傳回值,該函數應該重定向使用者。當我們在修改網頁的一些問題時,将使用者暫時轉移到其他頁面時,這很有用。

from flask import Flask, abort, redirect, url_for

app = Flask(__name__)

@app.route('/')

def index():

return redirect(url_for('login'))

@app.route('/login')

def login():

abort(401)

# this_is_never_executed()

執行以上代碼後,基本URL會轉到使用中止功能的登入頁面,是以永遠不會執行登入頁面的代碼。

¥ 我要打賞

糾錯/補充

收藏

加QQ群啦,易百教程官方技術學習群

注意:建議每個人選自己的技術方向加群,同一個QQ最多限加 3 個群。