Python网络编程 路由

Python网络编程 路由

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

Flask中的路由

Flask中的 路由() 装饰器被用来将URL绑定到一个函数上。因此,当在浏览器中提到该URL时,该函数会被执行以得到结果。 这里,URL ‘/hello’ 规则被绑定到 hello_world() 函数。因此,如果用户访问 http://localhost:5000/ URL, hello_world() 函数的输出就会在浏览器中呈现。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
   return 'Hello Tutorialspoint'

if __name__ == '__main__':
   app.run()
Python

当我们运行上述程序时,我们得到以下输出 −

 * 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 -
Python

我们打开浏览器并指向URL http://localhost:5000/,以 看到函数被执行的结果。

Python - 路由

使用URL变量

我们可以使用路由来传递URL变量,以便在飞行中建立URLS。为此,我们使用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')
Python

When we run the above program, we get the following output −

/
http://localhost/
/login
/login?next=%2F
/user/Tutorials%20Point
Python

重定向

我们可以使用重定向函数,使用路由将用户重定向到另一个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()
Python

当上述代码被执行时,基本的URL会转到登录页面,该页面使用了中止函数,这样登录页面的代码就不会被执行。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册