(5)Flask 变量规则

Flask 变量规则

通过向规则参数添加变量部分,可以动态构建URL。此变量部分标记为<variable-name>。它作为关键字参数传递给与规则相关联的函数。

先来一个简单的示例说明一下上面的这句话是什么意思:

# -*- coding: utf-8 -*-


from flask import Flask

app = Flask (__name__)


@app.route ('/<name>')
def hello(name):
    return 'hello %s' % name


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

我们的route这里是一个name变量,所以我们在浏览器输入任何的字符串,他都会被赋值给实际的view,这里就赋值给了hello方法,这样就做到了根据不同的请求地址,返回相应的结果

除了默认字符串变量部分之外,还可以使用以下转换器构建规则:

序号转换器和描述
1

int

接受整数

2

float

对于浮点值

3

path

接受用作目录分隔符的斜杠

 

唯一的不同在于:如果你要传入的是整数,这里要改成app.route('/<int:score>'),同理,浮点数就是float

这里稍微讲一下path,我们来把上面代码稍微改造一下,做个小小的实验

# -*- coding: utf-8 -*-


from flask import Flask

app = Flask (__name__)


@app.route ('/<path:name>')
def hello(name):
    return 'hello %s' % name


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

好了,我们现在进行测试

第一段代码,我们在浏览器输入http://127.0.0.1:5000/louishu/121212dsasasashuiuqewdhueiw

测试结果:

第二段代码测试结果:

 

结论:使用path构造, 后面无论是否有‘/’分隔符,我们都可以将它作为一个path字符串传给方法来使用,我们只需要在path前后做到完全匹配就可以适配该路由。

Flask的URL规则基于Werkzeug的路由模块。这确保形成的URL是唯一的,并且基于Apache规定的先例。

考虑以下脚本中定义的规则:

@app.route('/flask')
@app.route('/flask/')

这两个规则看起来类似,但在第二个规则中,最后增加了一个/。因此,它成为一个规范的URL。

系统会默认帮你在最后加上/,所以你输入flask和flask/都可以匹配,但是在第一条规则里面,如果你输入flask/,那么系统将会返回给你的只有404--------not found。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值