flask post json_快速了解 Flask 框架

7fa98c9b3d23520e403557c1b6899ace.png

概述

Flask 是 Python 中轻量级易拓展的框架。依赖两个外部库:Werkzeug(WSGI 工具集)、Jinja2(模板引擎)。Werkzeug 可理解为一个路由模块,用于处理请求,匹配视图函数,响应请求;而 Jinja2 相当于将响应结果渲染至模板文件。

应用

from 

Flask 框架中,路由模块根据请求的 URL 在路由表中寻找对应的 URL 规则,并返回视图函数的执行结果给 WSGI 服务器。Flask 内部使用两张表维护路由:url_map(维护 URL 规则和 endpoint)、view_functions(维护 endpoint 和视图函数的映射),其中 endpoint 默认为函数名。

蓝图

蓝图可理解为是一个存储一组视图方法的容器对象,用来将一个大型应用分模块组织管理。应用初始化时需要注册 Blueprint。

from flask import Flask

user_bp = Blueprint('user', __name__)

@user_bp.route('/')
def user_profile():
    return 'user_profile'

app.register_blueprint(user_bp)    # 应用初始化时注册

钩子

在应用交互中,有些工作需要提前或是之后处理,如建立数据库连接、权限校验、数据格式转换等。Flask 提供了一些请求钩子供使用,另一些初始化工作也可以在 __ init__ 函数中处理。

from flask import Flask
from flask import abort

app = Flask(__name__)

# 在第一次请求之前调用
@app.before_first_request
def before_first_request():
    print("before_first_request")

# 在每一次请求时调用,这时候已经有请求了
@app.before_request
def before_request():
    print("before_request")
    # if 请求不符合条件:
    #     return "laowang"

# 在执行完视图函数之后会调用
@app.after_request
def after_request(response):
    print("after_request")
    response.headers["Content-Type"] = "application/json"
    return response

# 请每一次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息
@app.teardown_request
def teardown_request(response):
    print("teardown_request")


@app.route('/')
def index():
    return 'index'

if __name__ == '__main__':
    app.run(debug=True)

响应

接收 POST JSON 并响应 JSON 格式数据。

from flask import, request, json, Response

@app.route('/user', methods=['POST'])
def hello()
	result = {'sum': request.json['a'] + request.json['b']}
    return Response(json.dumps(result), mimetype='application/json')

参考

http://www.pythondoc.com/flask/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值