让我试着用例子来解释我的问题。
以下是使用Tkinter的示例GUI代码
from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()
如果我在Ipython中运行此代码,则在GUI可见时,我不会收到命令提示符。 现在,如果我注释掉行“root.mainloop()”,代码仍然在Ipython中工作,我可以访问命令提示符,以便我可以在代码运行时检查数据。
现在来到Flask案件,
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
app.run()
当我在Ipython中运行此应用程序时,我没有得到命令提示符。要在代码运行时访问变量,我需要停止烧瓶服务器。
是否有任何选项可以运行烧瓶服务器并可以访问命令提示符?
谢谢
答案 0 :(得分:1)
我是第二个@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命令提示符,您可以在代码运行时检查"数据"。
答案 1 :(得分:1)
在单独的线程中运行烧瓶应用程序。 试试这个例子: -
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终端进行检查。