获取请求数据
1. url路径参数
在Flask框架中获取url参数和在Django框架中的方法一致,都是在路由中书写匹配规则。
代码如下:
from flask import request
# 获取url参数
@app.route('/url/<user_id>')
def get_url(user_id):
return user_id
2. 查询字符串参数
在Flask框架中,使用request.args属性可以获取到查询字符串数据构造的字典。
代码如下:
from flask import request
# 获取查询字符串参数
@app.route('/get_args')
def get_args():
args = request.args
return args
3. Form表单数据
在Flask框架中,我们是用request.form属性获取表单传递字典数据。
代码如下:
from flask import request
# 获取form表单数据
@app.route('/get_form', methods=['post'])
def get_form():
form_data = request.form
return form_data
4. JSON数据
在Flask框架中,我们使用request.json属性获取JSON数据。
代码如下:
from flask import request
# 获取JSON数据
@app.route('/get_json', methods=['post'])
def get_json():
json_data = request.json
return json_data
5. 文件数据
在Flask框架中,我们使用request.files属性获取文件数据。
代码如下:
from flask import request
# 获取文件数据
@app.route('/get_files', methods=['post'])
def get_files():
img = request.files.get('img')
img.save('./2.png')
return 'get files'
6. 请求头数据
在Flask框架中,我们使用request.headers属性可以获取到请求头中的Environ数据,并不能直接获取到header中的数据,还要结合.environ.get('key')。
代码如下:
# 获取请求头数据
@app.route('/get_headers')
def get_headers():
header_datas = request.headers
return 'get_headers'
7. 请求方法
在Flask框架中,我们使用request.method属性,可以获取到请求的方法。
代码如下:
# 获取请求方法
@app.route('/get_method')
def get_method():
method_data = request.method
return method_data
返回响应数据
1. 渲染jinja2模版
在Flask框架中,我们使用render_template属性来渲染jinja2模版。
代码如下:
from flask import render_template
# 渲染模板
@app.route('/template')
def render_temp():
# 构造渲染数据
context = {
'name':'laowang',
'age':23
}
return render_template('index.html', context=context)
在jinja2模版中,我们需要以如下语法进行数据的渲染:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>{{context.name}}</h1>
<h1>{{context.age}}</h1>
</body>
</html>
2. 返回JSON数据
在Flask框架中,我们可以有两种方式返回JSON数据,一种是直接返回字典类型数据,另一种是使用jsonify属性来实现返回JSON数据。
代码如下:
from flask import jsonify
# 响应JSON数据
@app.route('/ret_json')
def ret_json():
data = {
'name': 'laowang',
'age': 23
}
return jsonify(data)
3. 重定向
在Flask框架中,我们使用redirect属性,进行重定向。
代码如下:
from flask import redirect
# 重定向
@app.route('/redirect_url')
def red():
return redirect('/')
4. 自定响应数据
在Flask框架中,我们可以通过make_response属性来自定义响应数据。
代码如下:
from flask import make_response
# 自定义响应
@app.route('/my_res')
def my_res():
my_response = make_response()
my_response.status = "201"
return my_response