Flask项目变成包时出错

时间:2013-09-01 18:41:20

标签: python flask

我是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 之前不发送任何内容?以及如何解决这个问题?

3 个答案:

答案 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"