python装饰器解析请求参数_我如何在装饰器中获得Flask可选的URL参数?
有一种更好的机制可以验证内置到Werkzeug(和Flask)中的url值.定义一个converter并像使用路由中的任何其他转换器一样使用它(例如,< int:id>).
from werkzeug.routing import BaseConverter, ValidationError
class PhoneConverter(BaseConverter):
regex = r'\d{7,10}' # this validates the basic form of the value
def to_python(self, value):
# do more complicated validation
if not complicated_phone_validation(value):
raise ValidationError('not a valid phone number')
return value
app.url_map.converters['phone'] = PhoneConverter
@app.route('/')
def get_phone(phone):
# phone is valid
您也可以使用before_request函数通过电话参数验证所有路由,而不必修饰所有路由.
from flask import request, abort
@app.before_request
def valid_phone():
if 'phone' not in request.view_args:
return # view has no phone arg
if not complicated_phone_validation(request.view_args['phone']):
abort(404)
@app.route('/')
def get_phone(phone):
# phone is valid
@app.route('/')
def get_other(other):
# no phone arg, no validation
如果您真的想使用装饰器,则装饰函数将使用参数进行调用.
from functools import wraps
def check_phone(f):
@wraps(f)
def inner(**kwargs):
phone = kwargs['phone']
# do some validation
return f(**kwargs)
return inner
@app.route('/')
@check_phone
def get_phone(phone):
# phone is valid
python装饰器解析请求参数_我如何在装饰器中获得Flask可选的URL参数?相关推荐
- python以某种编码进行打印_如何在一场面试中展现你对Python的coding能力?
(点击上方快速关注并设置为星标,一起学Python) 来源:Python数据科学 链接: https://mp.weixin.qq.com/s/KwjLpeRT4l-pOc_iRCLWzg 如果 ...
- delphi 异步 调用 带参数_如何在 Spring 异步调用中传递上下文
什么是异步调用? 异步调用是相对于同步调用而言的,同步调用是指程序按预定顺序一步步执行,每一步必须等到上一步执行完后才能执行,异步调用则无需等待上一步程序执行完即可执行.异步调用指,在程序在执行时,无 ...
- 分享一个好用的函数吧,将js中的对象转成url参数
这个函数呢是自己在写基于Vue+ElementUI管理后台时用到的,,下面列出来两种使用方式: 最普通的,封装一个js函数 /*** 对象转url参数* @param {*} data* @param ...
- 5 拦截器拦截请求路由_手写简易版axios拦截器,实现微信小程序wx.request的封装与拦截...
前言: axios是一个功能强大的网络请求库,其中拦截器又是axios的精髓.在小程序的开发或者需要手动实现ajax的时候,没有实现对请求的拦截,开发的时候非常不方便,因此手写一个简易版的axios拦 ...
- python 抓取解析接口数据_[干货]用python抓取摩拜单车API数据并做可视化分析(源码)...
原标题:[干货]用python抓取摩拜单车API数据并做可视化分析(源码) 在APP中能看到很多单车,但走到那里的时候,才发现车并不在那里.有些车不知道藏到了哪里:有些车或许是在高楼的后面,由于有GP ...
- python ssl recv参数_如何在paramiko.recv函数中接收大输出?
我需要从paramiko中的.recv函数接收完整的输出.我试图增加nbyte数,但在我看来,我认为这不是正确的方法.脚本的主要用途是在同一会话中自动列出命令. 我这里的主要问题是我不能从shell接 ...
- python dbscan 如何确定eps参数_如何选择eps和minPts(DBSCAN算法的两个参数)以获得有效结果?...
What routine or algorithm should I use to provide eps and minPts parameters to DBSCAN algorithm for ...
- python模拟app发送请求失败_如何使用Tensorflow解决Python Chatbot App的运行会话失败问题...
问:这是我得到错误的地方.我只想问问我该怎么做才能使此代码运行.我正在使用张量流构建一个聊天机器人.大部分错误是在if-else语句中遇到的.所以请看一看.并尽快告诉我,谢谢:) def run_st ...
- [299]python实现批量解析PDF文件提取内容并写入到Excel中
摘要:最近需要将一批PDF文件中的某些数据整理到Excel中,因为文件数量接近20w+,手动更新几乎不现实,于是就提取关键词和内容动手写了个Python小工具,以实现自动完成上述目标. 要求: 读取P ...
最新文章
- 华为服务器显示403,禁止访问403是什么意思 网页提示403怎么解决
- CLOSE_WAIT?项目上线之际遇到这样的烦心事
- bert pytorch 序列标注_序列标注:Bi-LSTM + CRF
- 如何监控Android电视桌面,androidTV 电视桌面的效果
- Google和百度 翻译对比
- ETHREAD APC 《寒江独钓》内核学习笔记(4)
- AppStore上传已经开发好的App的方法
- 标准模块 os.stat
- 数据结构c语言pdf2007,数据结构(C语言)严蔚敏 吴伟明 编著 07.pdf
- 递归函数定义、递归应用案例-科赫雪花/雪花晶片/汉诺塔
- 40余位重磅嘉宾,320分钟巅峰对话,这8场主题圆桌藏着哪些时代密码?丨第二届算力大会...
- html js 生成缩略图,js实现产品缩略图效果
- 计算机rom分类,一文看懂ROM的结构、特点及其分类-控制器/处理器-与非网
- 系统架构设计师如何进行架构设计
- Unity打包生成APK文件提交应用宝踩坑记录
- 移动的帝国:日本移动互联网兴衰启示录
- springcloud微服务
- 【二级】(Word、Excel)使用邮件合并技术制作邀请函
- 基于vue-cli快速构建
- 技术分享 | 无人驾驶汽车的眼睛