在使用应用工厂时,如何在烧瓶中处理路线?如果blog
包含应用程序所需的所有内容以及创建应用程序的管理脚本,那么您如何在路由中引用应用程序?
??? blog
??? manage.py
??? blog
??? __init__.py
??? config.py
??? routes.py
Run Code Online (Sandbox Code Playgroud)
manage.py
#!/usr/bin/env python
from flask.ext.script import Manager
manager = Manager(create_app)
# <manager commands>
# ...
# ...
manager.add_option('-c', '--config', dest='config', required=False)
manager.run()
Run Code Online (Sandbox Code Playgroud)
博客/ __ init__.py
from flask import flask
from .config import Default
def create_app(config=None):
app = Flask(__name__)
app.config.from_object(Default)
if config is not None:
app.config.from_pyfile(config)
return app
Run Code Online (Sandbox Code Playgroud)
博客/ routes.py
@app.route() # <-- erm, this won't work now!?
def index():
return "Hello"
Run Code Online (Sandbox Code Playgroud)
问题是应用程序是在包外创建的,所以如何使用这样的设置来处理路由?
通常我使用具有蓝图的应用工厂.
blog/__init__.py
from flask import flask
from .config import Default
def create_app(config=None):
app = Flask(__name__)
if config is not None:
app.config.from_pyfile(config)
else:
app.config.from_object(Default)
from blog.routes import route_blueprint
app.register_blueprint(route_blueprint)
return app
Run Code Online (Sandbox Code Playgroud)
blog/routes.py
from flask import Blueprint
route_blueprint = Blueprint('route_blueprint', __name__)
@route_blueprint.route()
def index():
return "Hello"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
562 次 |
最近记录: |