- Python - 网络编程
- Python - 网络入门
- Python - 网络环境
- Python - 互联网协议
- Python - IP 地址
- Python - DNS 查询
- Python - 路由
- Python - HTTP 请求
- Python - HTTP 响应
- Python - HTTP 头部
- Python - 自定义 HTTP 请求
- Python - 请求状态码
- Python - HTTP 认证
- Python - HTTP 数据下载
- Python - 连接重用
- Python - 网络接口
- Python - 套接字编程
- Python - HTTP 客户端
- Python - HTTP 服务器
- Python - 构建 URL
- Python - Web 表单提交
- Python - 数据库和 SQL
- Python - Telnet
- Python - 电子邮件
- Python - SMTP
- Python - POP3
- Python - IMAP
- Python - SSH
- Python - FTP
- Python - SFTP
- Python - Web 服务器
- Python - 上传数据
- Python - 代理服务器
- Python - 目录列表
- Python - 远程过程调用
- Python - RPC JSON 服务器
- Python - 谷歌地图
- Python - RSS Feed
Python - 路由
路由是将 URL 直接映射到创建网页的代码的机制。它有助于更好地管理网页结构,并显著提高网站性能,并进一步简化增强或修改。在 python 中,路由在大多数 web 框架中都有实现。在本章中,我们将从flask web 框架中查看示例。
Flask 中的路由
Flask 中的route()装饰器用于将 URL 绑定到函数。因此,当浏览器中输入 URL 时,将执行该函数以给出结果。这里,URL '/hello'规则绑定到hello_world()函数。因此,如果用户访问https://127.0.0.1:5000/ URL,则hello_world()函数的输出将在浏览器中呈现。
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello Tutorialspoint' 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/2018 08:48:45] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [06/Aug/2018 08:48:46] "GET /favicon.ico HTTP/1.1" 404 - 127.0.0.1 - - [06/Aug/2018 08:48:46] "GET /favicon.ico HTTP/1.1" 404 -
我们打开浏览器并指向 URL https://127.0.0.1:5000/以查看正在执行的函数的结果。
使用 URL 变量
我们可以使用 route 传递 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='Tutorials Point')
当我们运行上述程序时,我们将得到以下输出:
/ https://127.0.0.1/ /login /login?next=%2F /user/Tutorials%20Point
重定向
我们可以使用 redirect 函数通过路由将用户重定向到另一个 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 会转到登录页面,该页面使用 abort 函数,以便登录页面的代码永远不会执行。
广告