请求头
URL路径参数
Content-Type
响应格式为text/html
from flask import Blueprint,request,make_response
index_page = Blueprint("index_page",__name__)
@index_page.route('/')
def index():
return "index page"
@index_page.route('/me')
def hello():
return "hello, this is me"
@index_page.route('/get')
def get():
var_a = request.args.get('a','Welcom')
return 'request:%sparams:%s,var_a:%s'%(request.method,request.args,var_a)
@index_page.route('/post',methods=['POST'])
def post():
var_b = request.values['b'] if 'b' in request.values else 'welcome'
return 'request: %s; params: %s; var_b: %s;%s'%(request.method,request.args,var_b,request.values)
@index_page.route('/upload',methods=['POST'])
def upload():
var_c = request.files['file'] if 'file' in request.files else None
return 'request: %s; params: %s; var_c: %s; values:%s'%(request.method,request.files,var_c,request.values)
@index_page.route('/text_get')
def text_get():
return "text/html"
@index_page.route('/text_same')
def text_same():
response = make_response('text/html',200)
return response
响应值默认是200
响应格式为json
@index_page.route('/json')
def json():
data = {'a':'Tom'}
import json
response = make_response(json.dumps(data))
response.headers['Content-type'] = 'application/json'
return response
請求方式
@index_page.route('/upload',methods=['POST'])
使用jsonify
from flask import jsonify
flask的jsonify封装了json,相比于json.dumps(),jsonify不仅把字典转换为了json格式的字符串,还设置了响应头为Content-Type:application/json,return的时候就会将此响应头返回。
@index_page.route('/json_same')
def json_same():
data = {'b':'Jerry'}
response = make_response(jsonify(data))
return response
jsonify封装了json.dumps和headers设置为application/json的操作
使用模板响应
最重要的,这里是使用的Jinjia2模板引擎。
需要在同级目录下创建一个templates文件夹,然后把html文件放进去。前提是需要导入render_template。
@index_page.route('/template')
def template():
return render_template ('index.html')