Flask运行及调试

说明:文章截选自实验楼教程【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问候。

那么这段代码做了什么?

  1. 首先我们导入了类 Flask 。这个类的实例化将会是我们的 WSGI 应用。第一个参数是应用模块的名称。 如果你使用的是单一的模块(就如本例),第一个参数应该使用 __name__。因为如果它以单独应用启动或作为模块导入, 名称将会不同 ( __main__ 对应于实际导入的名称)。获取更多的信息,请阅读 Flask 的文档。
  2. 接着,我们创建一个该类的实例。我们传递给它模块或包的名称。这样 Flask 才会知道去哪里寻找模板、静态文件等等。
  3. 我们使用装饰器route()告诉 Flask 哪个URL才能触发我们的函数。
  4. 定义一个函数,该函数名也是用来给特定函数生成 URLs,并且返回我们想要显示在用户浏览器上的信息。
  5. 最后我们用函数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 )环境上工作(这使得它几乎不可能在生产服务器上使用), 它依然允许执行任意代码。这使它成为一个巨大的安全风险,因此它绝对不能用于生产环境。

运行中的调试器的截图:

Flask运行及调试_第1张图片

最后

文章截选自实验楼教程【Python Flask Web框架】,该教程共有9节内容,主要使用Python Flask Web框架来创建简单的博客,涉及环境安装,运行调试,静态文件,渲染模板,数据的请求接收以及重定向,响应和会话。

教程列表如下:

Flask运行及调试_第2张图片
image.png

如果你想学习完整教程,点击【Python Flask Web框架】即可免费学习了;

你可能感兴趣的:(Flask运行及调试)