flask 框架(其三)get,post与自定义转换器
1,post与get请求的处理
#get 请求 @app.route('/') def req_args(): a = request.args.get('a') b = request.args.get('b') c = request.args.get('c') print(request.method) print(a, b, c) return 'request args success'
@app.route('/index', methods=['post']) def pos(): # request 是请求上下文 file属性指向的是前端发送的文件 img = request.files.get('imge') # 保存到本地 img.save('./666.jpg')
2,自定义转换器,限制用户访问规则的场景,那么这个时候就需要用到正则匹配,根据自己的规则去限定请求参数再进行访问
from flask import Flask from setting import Config from werkzeug.routing import BaseConverter app = Flask(__name__) app.config.from_object(Config) #定义一个转换器RegConverter,只需要重写__init__ 方法即可 class RegConverter(BaseConverter): def __init__(self, map, *args): super(RegConverter, self).__init__(map) print(map) # map 在此处指的是映射关系! self.regex = args[0] #取出的值为[\d+] print(self.regex) #是自己定义的正则表达式! # 添加路由映射!映射到自定义的转换器! app.url_map.converters['re'] = RegConverter # 将正则值传入到自自定义的转换器之中!这里限制路由规则 @app.route('/index/<re("[\d+]"):args>') def index(args): return 'hello world %s!' % args if __name__ == '__main__': app.run()