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()

 

posted @ 2018-05-19 23:03  十七楼的羊  阅读(180)  评论(0编辑  收藏  举报