flask response响应

1.返回html(字符串)

render_template本质是返回字符串
1)标准写法

@app.route("/")
def index():
	rsp = make_response(render_template("test.html")) # 会自动设置Content-Type: text/html; charset=utf-8
    return rsp

2.简单写法

@app.route("/")
def index():
    return render_template('test.html') 

2.返回json

1)标准写法

@app.route("/")
def index():
    dic = {"name":"wang"}
    rsp = make_response(jsonify(dic))# 会自动设置Content-Type: application/json
    return rsp

2.简单写法

@app.route("/")
def index():
    dic = {"name":"wang"}
    return jsonify(dic) # 会自动设置Content-Type: application/json

3.返回图片

可参考img标签的三种展示方式

1)标准写法

@app.route('/')
def capt(img_id):
    # 生成图片验证码
    text, image = captcha.generate_captcha()
    rsp = make_response(image)
    rsp.mimetype = 'image/jpg'
    return rsp
<img src="{{ img_id }}" alt="图形验证码" class="pic_code">

1)简单写法

@app.route('/')
def capt(img_id):
    # 生成图片验证码
    text, image = captcha.generate_captcha() # image是图片二进制文件
    return image {'Content-Type':'image/png; charset=utf-8'}
<img src="{{ img_id }}" alt="图形验证码" class="pic_code">

4.状态码设置

1)标准写法

@app.route("/")
def index():
    rsp = make_response("hello",404)
    return rsp

2)简单写法

@app.route("/")
def index():
    return "hello",404

4.mimetype设置

1)标准写法

@app.route('/')
def register():
    rsp = make_response("xxx")
    rsp.mimetype="text/xxx" # 等价于rsp.headers['Content-Type']= 'text/xxx; charset=utf-8'
    return rsp

2)简单写法

@app.route('/')
def register():
    return "xxx",{'Content-Type':'text/xxx; charset=utf-8'}

5.cookie设置

1)标准写法

@app.route('/')
def register():
    rsp = make_response("xxx")
    rsp.set_cookie(key="name",value="wang")
    return rsp

2)简单写法

@app.route('/')
def register():
    return "xxx",{"Set-Cookie": "name=wei; Path=/"}

其他

1.返回字符串(render_template函数本质返回的也是字符串)
2.返回字典,自动调用jsonify,返回json
3.返回元组,status 的值会重载状态代码, headers 是一个由额外头部值组成的列表 或字典。满足以下三种方式:
1)(response, status)
2) (response, headers)
3)(response, status, headers)

你可能感兴趣的:(Python,python)