Flask之Request请求

Flask之Request请求,第1张

请求url: http://127.0.0.1:5000/hello?name=bob

flask为了将请求的URL匹配到对应视图函数,flask中存储了一个路由表(app.url_map)其中定义了URL规则和视图函数的映射。

如果找到了对应的视图函数,将展示。否则显示404。

可以通过flask routes来展示app.url_map表中解析到的数据

从这里我们可以看到每个路由或者说是接口对应的方法,参数等信息

在flask中,我们可以通过在@app.route()装饰器后设置http请求的方法,类似springboot中的requestMapping

如果请求的方法的方式和设置的不符合,将提示405(Method Not Allowed)

因为flask默认请求的URL为字符串,所以Flask内置了URL变量转换器

<int>限制了year必须是一个整数

<any>限定了必须在url上填入你选中的值

其实个人比较难理解什么是钩子,书上是认为请求的预处理和后处理被认为是一个钩子。

PS:after_request和after_this_request钩子必须接受一个响应对象作为参数,并且返回一个响应对象。

Flask 表单form.validate_on_submit()什么情况下会是false??

1、在form中受到validators控制,不满足条件就会导致false

2、在form中使用了raise抛出异常后也会false。

3、表单的地方没写{{ form.csrf_token }},在HTML 里加上就好

4、定义表单时没写validators=[DataRequired()],如果不写这句,form.validate_on_submit()就认为表单是空的,所以会false。

这里注意如果是from flask_wtf import FlaskForm,validators里一定是DataRequired,如果是from flask_wtf import Form 那就是Required

account = StringField(u'账号', validators=[DataRequired()])

password = PasswordField(u'密码', validators=[DataRequired()])

submit = SubmitField(u'登录')

1

2

3

5、中文编码问题(好像python3不存在这个问题)

上面已经写出来了,StringField(u’账号’, validators=[DataRequired()]),如果label有中文的话,一定要加Unicode,不然也会false的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11817665.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存