在 运行 flask 时是否有任何选项获得 ipython 命令提示符

Is there any option getting ipython command prompt while running flask

现在让我试着用例子来解释我的问题。

这是使用 Tkinter 的示例 GUI 代码

from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()

如果我 运行 Ipython 中的这段代码,当 GUI 可见时,我不会得到命令提示符。 现在,如果我注释掉 "root.mainloop()" 行,代码在 Ipython 中仍然有效,并且我可以访问命令提示符,以便在代码为 运行ning 时检查数据。

现在进入 Flask 案例,

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

app.run()

当我在 Ipython 中 运行 这个应用程序时,我没有得到命令提示符。要在代码 运行ning 时访问变量,我需要停止 flask 服务器。

是否有任何选项可以 运行 flask 服务器并可以访问命令提示符?

谢谢

我赞同@NewWorld 并且会推荐一个调试器。您可以使用 IPython 调试器在 IPython shell 中检查程序。安装例如有:

pip install ipdb

然后加载调试器:ipdb.set_trace() like;

@app.route('/')
def hello_world():
    import ipdb; ipdb.set_trace()
    return 'Hello World!'

这将打开 IPython 命令提示符,您可以检查 "data while the code is running"。

更多信息:
查看 here 开始使用 ipdb。
This site 简要介绍调试器中的可用命令。

运行 单独线程中的烧瓶应用程序。 试试这个例子:-

from flask import Flask                                                         
import thread
data = 'foo'
app = Flask(__name__)
@app.route("/")
def main():
    return data
def flaskThread():
    app.run()
if __name__ == "__main__":
    thread.start_new_thread(flaskThread,())

运行 这个文件在 ipython:- "run -i filename.py" 然后你就可以访问ipython终端进行检查了。

如果您想使用 flask shellipython,您可以安装以下软件包:

pip install flask-shell-ipython