【发布时间】:2018-12-05 02:19:34
【问题描述】:
我有一个奇怪的问题,当我在 PyCharm 中或通过控制台 (python script.py) 运行下面的代码时,烧瓶服务器需要很长时间才能启动,这意味着在尝试访问它时它没有显示任何内容好几分钟。
import threading
from flask import render_template, request, logging, Flask, redirect
def setupFlask():
appn = Flask(__name__)
log = logging.getLogger('werkzeug')
log.setLevel(logging.ERROR)
@appn.route('/')
def page():
return render_template('index.html')
@appn.route('/submit', methods=['POST'])
def submit():
token = request.form['ID']
ID = token
return redirect('/')
appn.run()
a = threading.Thread(target=setupFlask)
a.daemon = True
a.start()
while True:
pass
奇怪的是,当我在 PyCharm 调试器中运行上面相同的代码时,flask 服务器需要大约 5 秒才能启动,比在控制台中运行时的几分钟要快得多。在正常运行脚本时我会喜欢这种速度,并且由于在调试器中修复自身的问题而无法找到解决方案! 这段代码 sn-p 是一个更大的应用程序的一部分,但是我已经将它调整为独立运行,并且发生了同样的问题。 我没有在 virtualenv 中运行。 感谢所有帮助。
编辑:index.html 文档非常基本,只包含一些脚本和元素,因此我看不出它需要很长时间才能加载。
【问题讨论】:
-
这很奇怪。它应该总是像 5s。你如何在控制台上运行我?
-
@Frynio 确实......我在一个线程中运行上面的函数,并在控制台中执行正常的“python script.py”。在 PyCharm 中运行时会出现同样长的启动时间。我将稍微编辑问题以使其更有意义。
-
你使用 virtualenv 吗?顺便说一句,你的进口很奇怪。我会一直
from flask import Flask,你的代码 f.e 对我不起作用 -
您的代码示例是完整的脚本还是被编辑了?您正在守护线程中运行 Flask 应用程序,这表明主线程中发生了更多事情,否则该进程将在
a.start()之后退出 -
@Frynio 我将尝试重新安装 python 和旧学校中的模块尝试修复看到,因为您没有遇到相同的行为!
标签: python python-3.x flask webpage