从Flask脚本中与Flask的应用程序交互

从Flask脚本中与Flask的应用程序交互,flask,flask-script,Flask,Flask Script,我有一个烧瓶应用程序正在运行,我想要一些可以与之交互的东西。让我用下一个例子来解释: 烧瓶应用程序: 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 re

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

烧瓶应用程序:

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脚本管理器.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()
重新加载我的文本从应用程序内部调用文本重新加载函数


我应该用什么魔法来完成这个任务?这样的事情可能发生吗?

我认为app.app\u上下文就是你要找的。 但是你需要先让上下文像这样

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)

每次使用命令行时,Flask脚本都会在新进程中运行;这个进程总是与正在运行的服务器分开的。这意味着您需要某种形式的进程间通信或共享的外部数据库来实现您想要做的事情。这里的目标是什么,你最终想要实现什么?我想创建一个flask脚本场景,当需要使flask应用程序重新加载/重新定义一些变量时可以调用它。是的,我知道过程是不同的。我想知道是否有API或其他东西可以从外部触发flask应用程序的方法。一条特殊的路线可以解决这个问题,但可能是内部原因。。我不知道。没有为你预先编码的东西;一条特殊的路线是最简单的方法。@MartijnPieters,谢谢。我将研究进程间通信-这是我真正想要的: