通过简单的三步就可以来访问一个可以输出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 输出
那么这段代码做了什么?
- 首先我们导入了类
Flask。这个类的实例化将会是我们的 WSGI 应用。第一个参数是应用模块的名称。 如果你使用的是单一的模块(就如本例),第一个参数应该使用 __name__。因为取决于如果它以单独应用启动或作为模块导入, 名称将会不同 ('__main__'对应于实际导入的名称)。获取更多的信息,请阅读Flask的文档。 - 接着,我们创建一个该类的实例。我们传递给它模块或包的名称。这样 Flask 才会知道去哪里寻找模板、静态文件等等。
- 我们使用装饰器
route()告诉 Flask 哪个 URL 才能触发我们的函数。 - 定义一个函数,该函数名也是用来给特定函数生成 URLs,并且返回我们想要显示在用户浏览器上的信息。
- 最后我们用实例方法
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/...即可)
讨论区