说明:文章截选自实验楼教程【Python Flask Web框架】,你可以点击教程查看完整内容;
文章通过介绍一个 flask 的小例子,来学习设置 flask 实例的 debug 属性来开启或者关闭调试模式。
1 一个最小的应用
一个最小的应用看起来像这样:
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 本身冲突。
$ python3 hello.py
* Running on http://127.0.0.1:5000/
现在使用浏览器浏览http://127.0.0.1:5000/
,你会看到你的 hello world
问候。
那么这段代码做了什么?
- 首先我们导入了类 Flask 。这个类的实例化将会是我们的 WSGI 应用。第一个参数是应用模块的名称。 如果你使用的是单一的模块(就如本例),第一个参数应该使用
__name__
。因为如果它以单独应用启动或作为模块导入, 名称将会不同 (__main__
对应于实际导入的名称)。获取更多的信息,请阅读 Flask 的文档。 - 接着,我们创建一个该类的实例。我们传递给它模块或包的名称。这样 Flask 才会知道去哪里寻找模板、静态文件等等。
- 我们使用装饰器
route()
告诉 Flask 哪个URL
才能触发我们的函数。 - 定义一个函数,该函数名也是用来给特定函数生成 URLs,并且返回我们想要显示在用户浏览器上的信息。
- 最后我们用函数
run()
启动本地服务器来运行我们的应用。if __name__ == '__main__'
: 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。
请按Ctrl+c
来停止服务器。
2 外部可见服务器
当你运行服务器,你会注意到它只能从你自己的计算机上访问,网络中其它任何的地方都不能访问。 这是因为默认情况,调试模式,只有应用中的一个用户可以执行你计算机上的任意 Python 代码。
如果你关闭 debug 或者信任你所在网络上的用户,你可以让你的服务器对外可用,只要简单地改变脚本hello.py
中方法run()
的调用像如下这样:
app.run(host='0.0.0.0')
这让你的操作系统去监听所有公开的 IP。
3.调试模式
run()
方法是十分适用于启动一个本地开发服务器,但是你需要在修改代码后手动重启服务器。 这样做并不好,Flask 能做得更好。如果启用了调试支持,在代码修改的时候服务器能够自动加载, 并且如果发生错误,它会提供一个有用的调试器。
有两种方式开启调式模式。一种是在应用对象上设置标志位:
app.debug = True
app.run()
或者作为run
的一个参数传入:
app.run(debug=True)
两种方法效果是一样的。
Attention:
尽管交互式调试器不能在分叉( forking )环境上工作(这使得它几乎不可能在生产服务器上使用), 它依然允许执行任意代码。这使它成为一个巨大的安全风险,因此它绝对不能用于生产环境。
运行中的调试器的截图:
最后
文章截选自实验楼教程【Python Flask Web框架】,该教程共有9节内容,主要使用Python Flask Web框架来创建简单的博客,涉及环境安装,运行调试,静态文件,渲染模板,数据的请求接收以及重定向,响应和会话。
教程列表如下:
image.png如果你想学习完整教程,点击【Python Flask Web框架】即可免费学习了;
网友评论