zoukankan      html  css  js  c++  java
  • 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
    该花的钱要花,该吃的饭要吃。
  • 相关阅读:
    MVC设置默认页面
    MySQL_DBA整理
    解决git提交敏感信息(回退git版本库到某一个commit)
    并发数计算
    高并发下的 Nginx 优化与负载均衡
    PassengerNginxdebian快速部署Rails
    Linux+postfix+extmail+dovecot打造基于web页面的邮件系统
    2018.11.30软件更新公告
    2018.10.11软件更新公告
    2018.09.25软件更新公告
  • 原文地址:https://www.cnblogs.com/chao666/p/12394813.html
Copyright © 2011-2022 走看看