Flask 之 Response
from flask import Flask, Response, render_template, make_response, jsonify, request from datetime import datetime, timedelta import json ''' Http 协议有请求和应答的过程, 服务器返回数据封装在应答对象中,HTTP 协议包含了返回给客户端的字符串,状态码(默认是200) 后续前后端分离 也有可能会和前段交互返回统一的json的格式。 后续会说到 下面会有一个小例子 jsonify ''' app = Flask(__name__) # http://127.0.0.1:5000 @app.route('/') def index(): user = { "name":"tom", "age" : 18, 'sex' : True } return Response(json.dumps(user), 200) ''' 上下俩种写法都是一样的json dumps 就是将你的数据转换成json格式返回 json.dumps 把字典转成json字符串 返回Response 有很多的优点,可以设置答应状态码。 设置cookie。设置应答头信息 ''' # http://127.0.0.1:5000/index2/ @app.route('/index2/') def index2(): user = { "name":"tom", "age" : 18, 'sex' : True } response = make_response(json.dumps(user), 200) # Content-Type 指定内容类型 response.headers['Content-Type'] = 'text/html' return response # http://127.0.0.1:5000/index3/ @app.route('/index3/') def index3(): user = { "name":"tom", "age" : 18, 'sex' : True } return jsonify(user) # response 渲染魔板 @app.route('/index4/') def index4(): response = make_response(render_template('login.html')) return response ''' Cookie 介绍,Cookie 是存储在客户端上面的 , 说白了就是存储在对应的浏览器上面的, 比如谷歌 火狐 每个对应的浏览器Cookie 是不同, Cookie 目的就是记住和跟踪与客户相关的数据, 比如淘宝的最近浏览。。 ''' ''' Cookie 通过response 对象set_cookie函数来设置的 cookie 默认过期时间 每次关闭浏览器就会清除cookie了 cookie 是可以设置过期时间的 ''' ''' 获取cookie 是通过request 对象来获取的 例如 request.cookies.get('xxx') ''' #http://127.0.0.1:5000/set_cookie/ @app.route('/set_cookie/') def cookie(): response = make_response('这是一个response响应 响应请求cookie') # 设置过期时间 timeout = datetime.today() + timedelta(days=3) # 设置cookie 是以键值对的形象来写的 expires 过期时间 response.set_cookie('uid', 'xiaomo', expires=timeout) return response @app.route('/get_cookie/') def getcookie(): name = request.cookies.get('uid') print(name) return Response(name) if __name__ == '__main__': app.run(debug=True)
index 返回的格式
index 3 返回格式