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)

 

  

使Flask的url支持正则表达式以及一个api小demo的更多相关文章

  1. 第一个ajax小demo

    第一个ajax小demo 文章来源:http://blog.csdn.net/magi1201/article/details/44569657

  2. 一个汇编小demo

    一个小demo: #include<stdio.h> void main(){ ; char *str="i=%d\n"; printf("begin\n&q ...

  3. 每天一个JS 小demo之新建文件夹。主要知识点:DOM方法的综合运用

    <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"& ...

  4. Html5游戏开发-145行代码完成一个RPG小Demo

    lufy前辈写过<[代码艺术]17行代码的贪吃蛇小游戏>一文,忽悠了不少求知的兄弟进去阅读,阅读量当然是相当的大.今天我不仿也搞一个这样的教程,目地不在于忽悠人,而在于帮助他人. 先看de ...

  5. 每天一个JS 小demo之韩雪冬轮播图。主要知识点:html,css布局,对于数组和对象的理解和运用

    @charset "utf-8"; /* CSS Document */ ;; } li { list-style: none; } img { border: none; } b ...

  6. 每天一个JS 小demo之商品下架特效制作,主要知识点:定时器,倒计时,抖动特效。PS:由于不方便上传文件夹,只能上传效果图,图片等素材需自寻哟。

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  7. 每天一个JS 小demo之个人信息添加。主要知识点:DOM操作中的表格操作,节点操作

    以下是简易效果: <!DOCTYPE html><html lang="en"><head> <meta charset="UT ...

  8. 每天一个JS 小demo之商品筛选。主要知识点:DOM方法综合运用

    <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"& ...

  9. 用idea 创建一个spring小demo,基于xml文件配置

    1.首先,File->new->project ,进入新增项目页面 或者在 2.勾选spring,然后点击下一步 3.修改项目名称和项目位置 进入页面后 5.创建一个spring配置文件 ...

随机推荐

  1. 一句道破所有的springmvc(面试必备)

    springmvc流程 : URL--------前端控制器DispatcherServlet---------HandlerMapping处理器映射器-------调用HandlerAdapter处 ...

  2. iNeuOS 物联网云操作系统2.0发布,集成设备容器、视图建模、机器学习三大模块

    目       录 1.      概述... 2 2.      使命及目标... 3 3.      系统框架... 4 4.      设备容器(iNeuKernel)... 4 5.      ...

  3. Kibana 管理界面使用教程

    使用浏览器访问 ip:5601 默认端口,进入首页 Discover:日志管理视图 Visualize:统计视图 Dashboard:仪表视图 Timelion:时间轴视图 APM:性能管理视图 De ...

  4. 消息中间件——RabbitMQ(八)高级特性全在这里!(下)

    前言 上一篇消息中间件--RabbitMQ(七)高级特性全在这里!(上)中我们介绍了消息如何保障100%的投递成功?,幂等性概念详解,在海量订单产生的业务高峰期,如何避免消息的重复消费的问题?,Con ...

  5. python 生成式,生成器,迭代器,可迭代

    1.生成器就是迭代器2.生成式用[](中括号)包起来,生成器用()(圆括号)包起来3.生成式在使用前已经在内存中存在,生成器只有在使用时才生成4.迭代器是可以用.__next__()不断取出下一值,直 ...

  6. 操作系统-IO管理概述

    IO管理概述 一.IO设备 IO设备管理是操作系统设计中最凌乱也最具挑战性的部分.由于它包含了很多领域的不同设备以及与设备相关的应用程序,因此很难有一个通用且一直的设计方案.所以在理解设备管理之前,应 ...

  7. Sherlock之Instructions指令介绍(Sherlock Version: 7.2.5.1 64-bit)

    指令集总览              1.General 1).Comment:: 注释指令. 2).Image Window: 创建新的图像窗口. True: 取像之后更新图像窗口显示:False: ...

  8. mysql安装-yum方式

    1.环境 查看当前系统环境,使用的是 centos release 6.5 (Final). 2.检查当前系统是否已经安装过mysql rpm -qa | grep mysql 3.如果有,那么删除已 ...

  9. POJ-3686 The Windy's KM算法 拆点题

    参考:https://blog.csdn.net/sr_19930829/article/details/40680053 题意: 有n个订单,m个工厂,第i个订单在第j个工厂生产的时间为t[i][j ...

  10. 牛客多校第二场B discount 基环内向树

    题意: 有n种商品,每种商品有一个价格 p[i] . 每种商品都有2种打折方式: 1. 给你优惠 d[i] 元. 2. 免费送你第 f[i] 种饮料. 现在求每种饮料至少一瓶的最小花费. dp[i][ ...