1

我有一个烧瓶应用程序正在运行,我想要一些可以与之交互的东西。让我用下一个例子来解释它:

烧瓶应用程序:

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()

烧瓶脚本(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()

我应该在烧瓶脚本中添加什么魔法来完成这些事情?这样的事情甚至可能吗?

4

1 回答 1

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)
于 2015-09-23T23:29:52.103 回答