Flask上下文,蓝图和Flask-RESTful

一.上下文

1.请求上下文

request 请求上下文 请求对象,封装了客户端发出的HTTP请求中的内容 session 请求上下文
用户会话,用于存储请求之间需要“记住”的☞的字典

2.应用上下文

current_app 应用上下文 当前激活程序的程序实例 g 应用上下文
处理请求时用作临时存储的对象。每次请求都会重设这个变量

二.蓝图

1.什么是蓝图

蓝图(blueprint):用于实现单个应用的视图、模板、静态文件的集合。

蓝图就是模块化处理的类。类似于django中app,子应用。

简单来说,蓝图就是一个存储操作路由映射方法的容器,主要用来实现客户端请求和URL相互关联的功能。
在Flask中,使用蓝图可以帮助我们实现模块化应用的功能。

flask中,将项目模块化,blueprint,是flask自带的一种开发模式,目的是为了方便开发大型的项目

2.蓝图的实现

Top 1.创建蓝图

from flask import Blueprint

users_bp = Blueprint('users', __name__)

# url_prefix  # 指定当前蓝图下所有路由的前缀

@users_bp.route('/index')
def indext():
    return 'users bp response'

Top 2.注册蓝图

from flask import Flask
from apps.users_bp import users_bp

app = Flask(__name__)
app.register_blueprint(users_bp)

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

三.Flask-RESTful

Flask-RESTful 提供的最主要的基础就是资源(resources)。资源(Resources)是构建在 Flask 可拔插视图 之上,只要在你的资源(resource)上定义方法就能够容易地访问多个 HTTP 方法

1.安装Flask-RESTful

pip install flask-restful

2.运用Flask-RESTful

from flask import Flask
from flask_restful import Api, Resource

app = Flask(__name__)
api = Api(app)


# 自定义类视图, 必须继承于Resource
class IndexResource(Resource):
    def get(self):
        return 'first restful api'


api.add_resource(IndexResource, '/index', endpoint='index')

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

3.蓝图与Flask-RESTful

蓝图区

from flask import Blueprint
from flask_restful import Api, Resource

users_bp = Blueprint('users', __name__)
api = Api(users_bp)

class IndexResource(Resource):
    def get(self):
        return 'users_bp.api'

api.add_resource(IndexResource, '/index', endpoint='index')

注册app

from flask import Flask
from flask_restful import Api, Resource
from apps.users_bp import users_bp

app = Flask(__name__)
api = Api(app)

app.register_blueprint(users_bp)

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

你可能感兴趣的:(flask,restful,python)