您的位置:首页 > 编程语言 > Python开发

Flask 中的路由与反向路由

2015-09-18 11:53 615 查看

路由

装饰器
@app.route()
告诉
Flask
哪个
URL
才能触发我们的函数。这也就是路由.

之后 ,定义一个函数,该函数名也是用来给特定函数生成 URLs,并且返回我们想要显示在用户浏览器上的信息。

from flask import Flask,request,url_for
app = Flask(__name__)

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

@app.route('/user', methods=['GET'])
def hello_user():
return 'hello user'


路由的本质

路由的本质,是
URL
绑定,
@app.route()
装饰器用于把一个函数绑于一个
URL
上,如上,
/
绑定了
hello_world()
函数,
/user
绑定了
hello_user()
函数

路由变量规则

给 URL 增加变量的部分,把一些特定的字段标记成 。这些特定的字段将作为参数传入到你的函数中。当然也可以指定一个可选的转换器通过规则 。

@app.route('/users/<id>',methods=['GET'])
def user_id(id):
'''
请求地址为http://127.0.0.1:5000/users/123 http://127.0.0.1:5000/users/weixuan '''
return 'hello user:'+id


参数形式的url

@app.route('/query_user')
def query_user():
''' http://127.0.0.1:5000/query_user?id=123 '''
id = request.args.get('id')
return 'query user:'+id


反向路由

本质是根据函数名反向生成url,使用函数
url_for()
来针对一个特定的函数构建一个 URL。它能够接受函数名作为第一参数,以及一些关键字参数, 每一个关键字参数对应于 URL 规则的变量部分。未知变量部分被插入到 URL 中作为查询参数。

# -*- coding: utf-8 -*-
from flask import Flask,request,url_for

@app.route('/test')
def query_user():
''' http://127.0.0.1:5000/test?id=123 '''
id = request.args.get('id')
return 'query user:'+id

@app.route('/query_url')
def query_url():
'''
反导出 query_user函数名对应的url地址
'''
return 'query url:'+url_for('query_user')


请求地址
http://127.0.0.1:5000/query_url
,之后,打印的是

query url:/test
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python FLASK