我是python编程中的菜鸟。最近我正在学习用于Web开发的Flask框架。完成一些基本的烧瓶文档演示后,我试图将我的1页简单的hello世界分成mvc。 就像这是我的项目结构
Main folder
---> application [folder]
--> __init__.py
--> route.py
--->run.py
在run.py我有这段代码:
import application
在应用程序的_ init _。py我有这段代码:
from flask import Flask
app = Flask(__name__)
import route
在route.py我有这段代码:
from flask import Flask
from application import app
@app.route('/')
def index():
return "hello world"
app.run(debug=True,host='0.0.0.0')
现在当我转到我的终端并启动服务器时会发生这种情况
(venv)nihan@rko:~/apps/blog$ python run.py
* Running on http://0.0.0.0:5000/
* Restarting with reloader
^C^C127.0.0.1 - - [02/Sep/2013 00:25:45] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [02/Sep/2013 00:25:45] "GET / HTTP/1.1" 200 -
现在您可以看到此脚本正确运行,但在关闭进程之前它没有响应并请求。
我的问题是为什么服务器在按 CTRL + C 之前不发送任何内容?以及如何解决这个问题?
答案 0 :(得分:1)
快速解决这个问题 在route.py :
from flask import Flask
from application import app
@app.route('/')
def index():
return "hello world"
app.run(
host='0.0.0.0',
debug=True
)
答案 1 :(得分:1)
您应该将app.run()
电话移至run.py
。这应该在导入与应用程序相关的所有内容后发生,将它放在应用程序本身内并不是一个好主意。
答案 2 :(得分:1)
您还应避免使用循环导入,例如使用蓝图。
run.py
from application import app
app.run(debug=True, host='0.0.0.0')
应用/ __初始化__。PY
from flask import Flask
from route import mod
app = Flask(__name__)
app.register_blueprint(mod, url_prefix='/')
应用/ route.py
from flask import Flask, Blueprint
mod = Blueprint('app', __name__)
@mod.route('/')
def index():
return "hello world"