Flask框架之请求和响应

获取请求数据

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
该花的钱要花,该吃的饭要吃。
原文地址:https://www.cnblogs.com/chao666/p/12394813.html