Flask教程:快速入门

迫切希望上手?本文提供了一个很好的 Flask 介绍。假设你已经安装 Flask,
如果还没有安装话,请浏览下 安装

一个最小的应用¶

一个最小的应用看起来像这样:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

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

把它保存成 hello.py (或者类似的文件),然后用 Python 解释器运行它。确保你的应用不叫做 flask.py
因为这会与 Flask 本身冲突。

$ python hello.py
 * Running on http://127.0.0.1:5000/

现在浏览 http://127.0.0.1:5000/,你会看到你的 Hello World 问候。

那么这段代码做了什么?

  1. 首先我们导入了类 Flask 。这个类的实例化将会是我们的 WSGI 应用。第一个参数是应用模块的名称。
    如果你使用的是单一的模块(就如本例),第一个参数应该使用 __name__。因为取决于如果它以单独应用启动或作为模块导入,
    名称将会不同 ( '__main__' 对应于实际导入的名称)。获取更多的信息,请阅读 Flask 的文档。
  2. 接着,我们创建一个该类的实例。我们传递给它模块或包的名称。这样 Flask 才会知道去哪里寻找模板、静态文件等等。
  3. 我们使用装饰器 route() 告诉 Flask 哪个 URL 才能触发我们的函数。
  4. 定义一个函数,该函数名也是用来给特定函数生成 URLs,并且返回我们想要显示在用户浏览器上的信息。
  5. 最后我们用函数 run() 启动本地服务器来运行我们的应用。if __name__ == '__main__':
    确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。

请按 control-C 来停止服务器。

外部可见服务器

当你运行服务器,你会注意到它只能从你自己的计算机上访问,网络中其它任何的地方都不能访问。
这是因为默认情况下,调试模式,应用中的一个用户可以执行你计算机上的任意 Python 代码。

如果你关闭 debug 或者信任你所在网络上的用户,你可以让你的服务器对外可用,只要简单地改变方法
run() 的调用像如下这样:

app.run(host='0.0.0.0')

这让你的操作系统去监听所有公开的 IP。

调试模式¶

run() 方法是十分适用于启动一个本地开发服务器,但是你需要在修改代码后手动重启服务器。
这样做并不好,Flask 能做得更好。如果启用了调试支持,在代码修改的时候服务器能够自动加载,
并且如果发生错误,它会提供一个有用的调试器。

有两种方式开启调式模式。一种是在应用对象上设置标志位: