我有一个烧瓶应用程序正在运行,我想要一些可以与之交互的东西。让我用下一个例子解释一下:
Flask app:
from flask import Flask
MyApp = Flask(__name__)
mytext = "Hello World!"
@app.route('/')
def hello_world():
return mytext
def text_reload():
global mytext
mytext = "Hey! I have been reloaded!"
if __name__ == '__main__':
MyApp.run()
Flask-Script(manager.py):
from flask.ext.script import Manager
from myapp import MyApp
manager = Manager(MyApp)
@manager.command
def reload_mytext():
**DO SOME MAGIC HERE**
if __name__ == '__main__':
manager.run()
reload_mytext()
在应用内调用text_reload()
功能。
我应该用什么魔法来完成这些东西?这样的事情甚至可能吗?
答案 0 :(得分:0)
我认为app.app_context()正是您所寻找的。 但是你需要首先制作上下文。
def _make_context():
return dict(app=app, db=db, models=models)
manager = Manager(create_app)
manager.add_command("livereload", liveReloadServer, Shell(make_context=_make_context))
然后:
class liveReloadServer(Command):
"""prints hello world"""
def run(self):
with app.app_context():
server = Server(app.wsgi_app)
app.config['LIVERELOAD'] = True
server.serve(port=8080)