Flask 中的路由与反向路由

路由

装饰器 @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'
  • 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值