请稍候,加载中....

最小的flask应用

通过简单的三步就可以来访问一个可以输出hello world的程序员

第一步:编写最小的flask应用代码

from flask import Flask
app = Flask(__name__)

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

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

把它保存成 hello.py (或者类似的文件,不能命名为flask.py,这会导致flask模块被覆盖),然后用 Python 解释器运行它

第二步: 打开终端运行flask程序

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

请按 control-C 来停止服务器

第三步:通过浏览器进行访问

通过浏览器访问 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__': 确保服务器只会在该脚本作为主文件而不是模块导入才会运行。

注意

尽管交互式调试器不能在派生( forking )环境上工作(这使得它几乎不可能在生产服务器上使用), 它依然允许执行任意代码。这使它成为一个巨大的安全风险,因此它绝对不能用于生成环境

使用flask命令运行

可以通过flask框架提供的flask命令

如果你的文件名不是app.py(默认的FLASK_APP文件为app.py),需要在环境变量中指定Flask_APP

linux, mac使用export, windows环境使用set

$ export FLASK_APP=hello.py 
$ flask run * Running on http://127.0.0.1:5000/
windows 环境变量设置
C:\path\to\app>set FLASK_APP=hello.py

指定web服务器绑定的端口与ip

默认启动的web服务器host为127.0.0.1(本机),端口为5000,可以通过 --host, --port 启动项指定。

比如你希望其他主机也可以访问这台web服务器

$ flask run --host=0.0.0.0 --port 80

这样就会监听所有的外网ip,并且在标准的web服务端口80监听(访问时不用输入端口号,直接使用http://host/...即可)


Python学习手册-