请求相关
# 请求由上下文管理器完成,直接导入request使用即可
from flask import request
if request.method == 'GET':
pass
# 获取GET参数
request.args.get('username')
# 获取POST参数
request.form.get('username')
###### 请求相关信息 ######
# 请求方法
request.method
# GET请求参数
request.args
# POST请求参数
request.form
request.values
# 请求cookies
request.cookies
# 请求头
request.headers
request.path
request.full_path
request.script_root
request.url
request.base_url
request.url_root
request.host_url
request.host
# 请求携带的文件
request.files
obj = request.files['the_file_name']
obj.save('/var/www/uploads/' + secure_filename(f.filename))
form表单只能提交GET和POST请求
响应相关
# 返回字符串
return 'abc'
# 返回渲染模板
from flask import render_template
return render_template('index.html')
# 返回json
from flask import jsonify
return jsonify({'k1': 'v1'})
# 重定向
from flask import redirect
return redirect(url_for('login'))
# 定制响应头
from flask import make_response
repo = make_response('{"k1": "v1"}')
repo.headers['Content-Type'] = 'application/json'
return repo
# 设置cookie
from flask import make_response, render_template
response = make_response(render_template('index.html'))
response.set_cookie('key', 'value')
return response
特殊装饰器
# 执行顺序
# before_first_request # 按定义顺序
# before_request # 按定义顺序
# 上面两个装饰器, 如果没执行完就返回, after_request都执行
# after_request # 按定义相反的顺序
# 源码片段
class Flask(_PackageBoundObject):
@setupmethod
def before_first_request(self, f):
self.before_first_request_funcs.append(f)
return f
@setupmethod
def before_request(self, f):
self.before_request_funcs.setdefault(None, []).append(f)
return f
@setupmethod
def after_request(self, f):
self.after_request_funcs.setdefault(None, []).append(f)
return f
@setupmethod
def template_global(self, name=None):
def decorator(f):
self.add_template_global(f, name=name)
return f
return decorator
@setupmethod
def template_filter(self, name=None):
def decorator(f):
self.add_template_filter(f, name=name)
return f
return decorator
@setupmethod
def errorhandler(self, code_or_exception):
def decorator(f):
self._register_error_handler(None, code_or_exception, f)
return f
return decorator