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

Flask スクリプト (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()

このことを達成するために、flask-script にどのような魔法を入れるべきですか? そのようなことは可能ですか?

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 に答える