使Flask的url支持正则表达式以及一个api小demo
2024-10-06 12:20:04
from flask import Flask
from flask import jsonify
from flask import request
from werkzeug.routing import BaseConverter
app = Flask(__name__) #重新定义url匹配规则
class RegexConverter(BaseConverter):
def __init__(self, url, *args):
self.url = url
self.regex = args[0]
app.url_map.converters['regex'] = RegexConverter
#请求地址映射 @app.route('/index',methods=['POST'])
def test_post():
#定义响应结果集
resultMap = {} #获取post请求参数
a = request.json['a']
b = request.json['b'] #如果参数必填就要加上
if a and b:
if a == b:
resultMap['ret_code'] = 200
resultMap['ret_info'] = '成功'
#返回json格式的
return jsonify(resultMap)
else:
resultMap['ret_code'] = 500
resultMap['ret_info'] = '失败'
return jsonify(resultMap)
else:
resultMap['ret_code'] = 500
resultMap['ret_info'] = '缺少请求参数'
return jsonify(resultMap) #万能url可以接收所有进入这个服务的请求
@app.route('/<regex(r"[\w\W]*"):url>',methods=['GET'])
def test_get(url):
resultMap = {}
c = request.args.get('c')
d = request.args.get('d')
if c and d:
if c != d:
resultMap['ret_code'] = 200
resultMap['ret_info'] = 'c和d不相等哟'
return jsonify(resultMap)
else:
resultMap['ret_code'] = 500
resultMap['ret_info'] = 'c和d相等啦啦啦啦啦'
return jsonify(resultMap)
else:
resultMap['ret_code'] = 500
resultMap['ret_info'] = '缺少请求参数'
return jsonify(resultMap)
if __name__ == '__main__':
app.run(debug=True,port=505)
最新文章
- xampp 下安装mysql-python
- Python: 编程遇到的一些问题以及网上解决办法?
- 野路子土鳖ASP.NETer谈互联网的发展趋势
- android里TextView加下划线的几种方式
- 关于Java多态
- HDU5072 容斥原理
- JQuery Validate使用总结
- VS2013控制台一闪而过问题解决方法
- 多层次的Json字符串转化为对象
- MongoDB与python交互
- Win10 iot 配置防火墙限制应用部署
- react redux学习之路
- Oracle的下载安装教程以及所出现的问题
- Android 和 JS交互方法初探
- 有意思的bug
- c++编程思想里面的错误(可能c++标准变了,所以以前的东西没有更新)
- DBCC--SHOWCONTIG
- 使用mac版思维导图软件MindNode
- luoguP2490 [SDOI2011]黑白棋 博弈论 + 动态规划
- Python windows ping