Flask hello.py基本应用程序没有运行?

时间:2014-01-06 05:58:34

标签: python flask virtualenv

当我在命令行中输入python hello.py时,我得到另一个bash提示符。我不确定是什么问题,因为我能够运行virtualenv,当我检查哪个版本的烧瓶我有最新版本>>> '0.10.1'时安装。

Opals-MacBook-Pro:~ opalkale$ cd myproject
Opals-MacBook-Pro:myproject opalkale$ ls
hello.py    venv
Opals-MacBook-Pro:myproject opalkale$ . venv/bin/activate
(venv)Opals-MacBook-Pro:myproject opalkale$ python hello.py
(venv)Opals-MacBook-Pro:myproject opalkale$ 

hello.py的代码如下:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

    if __name__ == "__main__":
            app.run()

此代码取自:http://flask.pocoo.org/docs/quickstart/#quickstart

3 个答案:

答案 0 :(得分:10)

您的文件与文档中的示例不符。您已将if __name__ == '__main__':块放在hello()的定义中。

Whitespace在Python中很重要。它需要放在函数定义之外(即,一直对齐到左边)。执行此操作将在脚本运行时执行if。它现在的存在方式,您需要导入hello模块并调用hello函数。那不是你想要的。修复缩进,您将全部设置。

答案 1 :(得分:0)

Python始终是这些空间的头疼。我使用sublime文本编辑器,帮助我快速找出这些间距语法问题。

在您的情况下,只需移动名称 ==“ main ”:向左移动,以便if不在上面返回的函数中。

希望有所帮助。

答案 2 :(得分:0)

您必须注意缩进。 Tab和四个空格不同。带有四个空格。 您可以像下面这样重新创建。 我也在提供自定义端口。

    from flask import Flask
    app = Flask(__name__)


    @app.route("/")
    def hello():
        return "Hello World!"


    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=5000)