您现在的位置是:首页 >技术交流 >Flask小知识点网站首页技术交流

Flask小知识点

我的棉裤丢了 2024-06-17 10:22:20
简介Flask小知识点

1、Flask

组成:werkzueg(专门用来处理请求相关URL) + jinja2(用来渲染模板页面) + 其他扩展包(flask-cache)

2、自定义转换器

#重写父类BaseConverter
class MyRegexConverter(BaseConverter):
    # regex = 'd{3}'
    def __init__(self, map, regex):
        super(MyRegexConverter, self).__init__(map)
        self.regex = regex
# 将转换器类添加到系统默认的转换器列表中
app.url_map.converters['abc'] = MyRegexConverter

@app.route('/<abc("1[3-9]d{9}"):number>')
def hello(number):
    return 'the number is %s' % number

3、返回响应

      return '字符串',状态码,响应头信息

      return jsonify() 

      url_for('视图函数', key=value) 反解析,返回视图函数相对应的路由地址

4、abort &errorhandler

当访问服务器资源时,如果找不到该资源,可以报出异常信息,使用errorhandler捕捉

@app.route('/index')
def index():
    abort(404)
    return 'hello'

@app.errorhandler(404)
def page_not_found(e):
    print(e)
    return "页面找不到"

5、request对象参数

request.data# 获取非表单以post提交的数据

request.form# 获取的表单以post提交的数据

request.args# 获取?后的查询数据

request.url #获取请求地址

request.method #获取请求方式

request.files #获取file类型的文件

6、加载信息的配置

class Myconfig(object):
    DEBUG = True

# 从配置类中加载
app.config.from_object(Myconfig)
# 从配置文件中加载
app.config.from_file('config.ini')

7、请求钩子

访问正常视图函数的时候,顺带执行的方法

常见的四种请求钩子:

#第一次访问时执行,适合做初始化操作,比如io文件读写
@app.before_first_request
def before_first_request():
    print("before first request")

#每次请求前都执行,适合对请求参数做校验,比如访问统计
@app.before_request
def before_request():
    print("before request")

#视图函数执行后返回到该方法,适合对返回值做统一处理
@app.after_request
def after_request(resp):
    resp['Content-Type'] = "applicaation/json"
    print("after request")
    return resp

#请求销毁之后执行该访问,适合做异常信息统计
@app.teardown_request
def teardown_request(e):
    print(e)
    print("teardown request")
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。