请求头

URL路径参数

Content-Type

响应格式为text/html

  1. from flask import Blueprint,request,make_response
  2. index_page = Blueprint("index_page",__name__)
  3. @index_page.route('/')
  4. def index():
  5. return "index page"
  6. @index_page.route('/me')
  7. def hello():
  8. return "hello, this is me"
  9. @index_page.route('/get')
  10. def get():
  11. var_a = request.args.get('a','Welcom')
  12. return 'request:%sparams:%s,var_a:%s'%(request.method,request.args,var_a)
  13. @index_page.route('/post',methods=['POST'])
  14. def post():
  15. var_b = request.values['b'] if 'b' in request.values else 'welcome'
  16. return 'request: %s; params: %s; var_b: %s;%s'%(request.method,request.args,var_b,request.values)
  17. @index_page.route('/upload',methods=['POST'])
  18. def upload():
  19. var_c = request.files['file'] if 'file' in request.files else None
  20. return 'request: %s; params: %s; var_c: %s; values:%s'%(request.method,request.files,var_c,request.values)
  21. @index_page.route('/text_get')
  22. def text_get():
  23. return "text/html"
  24. @index_page.route('/text_same')
  25. def text_same():
  26. response = make_response('text/html',200)
  27. return response

响应值默认是200

响应格式为json

  1. @index_page.route('/json')
  2. def json():
  3. data = {'a':'Tom'}
  4. import json
  5. response = make_response(json.dumps(data))
  6. response.headers['Content-type'] = 'application/json'
  7. return response

请求与响应 - 图1

請求方式

@index_page.route('/upload',methods=['POST'])

使用jsonify

from flask import jsonify
flask的jsonify封装了json,相比于json.dumps(),jsonify不仅把字典转换为了json格式的字符串,还设置了响应头为Content-Type:application/json,return的时候就会将此响应头返回。

  1. @index_page.route('/json_same')
  2. def json_same():
  3. data = {'b':'Jerry'}
  4. response = make_response(jsonify(data))
  5. return response

jsonify封装了json.dumps和headers设置为application/json的操作

使用模板响应

最重要的,这里是使用的Jinjia2模板引擎。
需要在同级目录下创建一个templates文件夹,然后把html文件放进去。前提是需要导入render_template。

  1. @index_page.route('/template')
  2. def template():
  3. return render_template ('index.html')

请求与响应 - 图2
请求与响应 - 图3