个人理解:一个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