Fork me on GitHub

Flask的请求与响应

Flask的请求与响应


1 请求相关信息

request.method # 请求方法
request.args # get 请求的参数
request.form # post请求的参数
request.values # 所有的请求参数

request.args.get('id')
request.args.getlist('ids') # 获取多个值

data = request.args
data_dict = data.to_dict() # 通过to_dict() 方法 转化成 字典

from urllib.parse import urlencode,quote,unquote
url = urlencode(data_dict) # 转换成 url
quote -->> url编码

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

获取 ip

request.remote_addr

文件

request.files
obj = request.files['the_file_name']
obj.save('/var/www/uploads/' + secure_filename(f.filename))


2 响应相关信息

(1)return "字符串" 实际上是调用make_response

(2)return render_template('html模板路径',{})

(3)return redirect('/index.html')

(4)jsonify 返回json数据

from flask import jsonfy

return jsonfy(**dict)

(5)响应中加入信息,基于make_response

from flask import make_response

response = make_response(render_template('index.html'))

response是flask.wrappers.Response类型

response.set_cookie('key', 'value')
response.delete_cookie('key')

response.headers['X-Something'] = 'A value'

return response

小例子

from flask import Flask,views,redirect,url_for,make_response,jsonify

app = Flask(name)

def auth_decorator(func):
def inner(args,**kwargs):
print('装饰器')
return func(
args,**kwargs)
return inner

@app.route('/index',endpoint='index',methods=['GET'])
@auth_decorator
def index():
response = make_response('index')
response.headers['hhhh'] = 'asdsad'
return response

if name == 'main':
app.run()

posted @ 2018-03-10 16:41  派对动物  阅读(1415)  评论(0)    收藏  举报
Top