在flask中你想向前端返回数据,必须是Response
的对象,这里和django必须是HttpResponse
对象一样。
from flask import Flask,Response,make_response
return直接返回
make_response+return返回。
Response+return返回。
jsonify+return返回。
render_template+return返回
return返回
return json.dumps({"a":1,"b"2}) #转化为json格式字符串返回(本质还是字符串一样,并不是真的json对象)
return "hello world" #直接返回字符串
return 'index.html',200,{"key":"value"} #返回字符串,转态码,请求头
return后面的值说明:index.html
表示字符串,也就是网站页面显示的内容
'200 ok'
表示状态码和对状态码的解析
{"name":"aaa"}
表示请求头
请求头不是必须要的,但是前面两个必须要,前提你是retrun多个值,还有就是顺序不能改变。
make_response对象
response=make_response(内容data参数,状态码参数,请求头参数) #内容data默认参数为"",不是None,状态码默认为200.
1.
response=make_response('hello') #自定义内容,默认状态码
return reponse #封装字符串返回
2.
response = make_response('page_two page', 200) #自定义内容和状态码
return response
3.
response = make_response('page_four page', 200, {"name": "page four"}) #自定义内容状态码和请求头
return response
4.
response = make_response('page_three page')
return response, 200, {"name": "page_three"}
josnify:
如果是返回json格式:'content-type': 'application/json'
默认是:'content-type': 'text/html'
return jsonify({"name":"abc"})
reponse对象:Response中的几个常见属性
1.headers:请求头相关
2.status : String类型的数据,格式例如:“200 ok”
3.status_code : int 类型,状态码,不能是自定义的状态码
4.data : 需要返回到前端的数据(任意数据类型)
5.set_cookie() :设置cookie 的值
6.del_cookie() :删除cookie
response = Response()
response.data = "html_page" #或直接response = Response("html_page")代替上面两句话
response.status_code = 299 #设置状态码
response.status = "298 notok" #设置状态
return response, "297 okok", {"name": "page fiv"} #返回数据