我正在使用flask-restful开发一个宁静的服务,我想在我的项目中同时利用工厂模式和蓝图。在app/__init__.py
我有一个create_app
函数来创建一个烧瓶应用程序并将其返回给外部调用者,所以调用者可以启动应用程序。
def create_app():
app = Flask(__name__)
app.config.from_object('app.appconfig.DevelopmentConfig')
from app.resource import resource
app.register_blueprint(v1, url_prefix='/api')
print app.url_map
return app
在该函数中,我打算注册一个指向带有前缀 url 的实现包的蓝图。
里面有app/resource/__init__.py
以下代码
from flask import current_app, Blueprint, render_template
from flask.ext import restful
resource = Blueprint('resource', __name__, url_prefix='/api')
@resource.route('/')
def index():
api = restful.Api(current_app)
from resource.HelloWorld import HelloWorld
api.add_resource(HelloWorld, '/hello')
我的目标是我可以在 url 访问 HelloWorld 休息服务/api/hello
,但我知道上面的代码在@resource.route('/') ...
. 我遇到了一些错误,例如AssertionError: A setup function was called after the first request was handled. This usually indicates a bug in the app ...
at api.add_resource(HelloWorld, '/hello')
。你能给我一些关于正确方法的提示吗?谢谢!