python+Flask中蓝图Blueprint的使用

个人理解:一个flask框架,定义一个server = Flask(name)服务器,那么定义蓝图的作用其实就是弄多个与server相同作用的东西。

admin = Blueprint('admin',__name__)
server.register_blueprint(admin)

这样注册了蓝图admin之后,admin就有了server同样的功能了。相当于多了个服务器。
比如:

api=flask_restful.Api(server,catch_all_404s=True)
api=flask_restful.Api(admin,catch_all_404s=True)

下面两份代码分别是不使用蓝图和使用蓝图的,可以对比一下加深理解。
代码1:

import flask, json
from flask import request,Flask,Blueprint
from flask_restful import Resource
import flask_restful

server = Flask(__name__)  # 创建一个服务,把当前这个python文件当做一个服务

class data_get(Resource):  # 返回data
    def get(self):
        data = {
            'User': {
                'id': '66',
                'name': '李华'
            }
        }
        return data

class data_post(Resource):
    def post(self):
        r = request.data
        da = json.loads(r)
        print(da)
        return da
api=flask_restful.Api(server,catch_all_404s=True)  #定义服务器server的api
api.add_resource(data_get,'/data/get') #添加接口
api.add_resource(data_post,'/data/post') 

if __name__ == '__main__':

    server.run(host='0.0.0.0',port=1360,debug=True)  # 指定访问端口、host

代码2:

import flask, json
from flask import request,Flask,Blueprint
from flask_restful import Resource
import flask_restful

server = Flask(__name__)  # 创建一个服务,把当前这个python文件当做一个服务

class data_get(Resource):  # 返回data
    def get(self):
        data = {
            'User': {
                'id': '66',
                'name': '李华'
            }
        }
        return data

class data_post(Resource):
    def post(self):
        r = request.data
        da = json.loads(r)
        print(da)
        return da

admin = Blueprint('admin',__name__)  #创建一个蓝图admin
api=flask_restful.Api(admin,catch_all_404s=True)  #蓝图充当服务器server角色
api.add_resource(data_get,'/data/get')
api.add_resource(data_post,'/data/post')


if __name__ == '__main__':
    server.register_blueprint(admin) #在服务器server上注册蓝图admin
    server.run(host='0.0.0.0',port=1360,debug=True)  # 指定访问端口、host

参考:https://blog.csdn.net/weixin_41973615/article/details/82252501
https://www.cnblogs.com/rixian/p/10279701.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值