Flask 中的路由与反向路由

来源:互联网 发布:淘宝网页图片尺寸 编辑:程序博客网 时间:2024/05/06 03:20

路由

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

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

from flask import Flask,request,url_forapp = Flask(__name__)@app.route('/')def hello_world():    return 'Hello World!'@app.route('/user', methods=['GET'])def hello_user():    return 'hello user'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

路由的本质

路由的本质,是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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

参数形式的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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

反向路由

本质是根据函数名反向生成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')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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

0 0
原创粉丝点击