Python 路由

Python 路由

路由是将URL直接映射到创建网页的代码的机制。它有助于更好地管理网页的结构,并显着提高网站的性能,并且进一步的增强或修改将变得非常简单。在python中,路由是在大多数网络框架中实现的。我们将在本章中看到flask Web框架中的示例。

1. Flask路由

Flask中的route()装饰器用于将URL绑定到函数。当在浏览器中访问对应URL时,将执行该函数以给出结果。此处,URL => /hello规则绑定到hello_world()函数。如果用户访问URL => http://localhost:5000/ ,则hello_world()函数的输出将在浏览器中显示。

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : www.yapf.com
# Date : 2020-08-25
from flask import Flask
 app = Flask(__name__)
 @app.route('/')
 def hello_world():
    return 'Hello Codebaoku'
 if __name__ == '__main__':
    app.run()
  
 

当运行上面的程序时,得到以下输出:

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : www.yapf.com
# Date : 2020-08-25
* 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()函数,并在执行这些行时打印出结果。

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : www.yapf.com
# Date : 2020-08-25
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')
  
 

当我们运行上面的程序时,得到以下输出:

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : www.yapf.com
# Date : 2020-08-25
/
 http://localhost/
 /login
 /login?next=%2F
 /user/fit%20su
  
 

3. 重定向

可以使用重定向功能通过路由将用户重定向到另一个URL。提到了新的URL作为函数的返回值,该函数应该重定向用户。当我们在修改网页的一些问题时,将用户暂时转移到其他页面时,这很有用。

 
# Filename : example.py
# Copyright : 2020 By Codebaoku
# Author by : www.yapf.com
# Date : 2020-08-25
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会转到使用中止功能的登录页面,因此永远不会执行登录页面的代码。

下一节:Python HTTP请求

Python 网络编程

相关文章