美文网首页Python
Flask运行及调试

Flask运行及调试

作者: 蓝桥云课 | 来源:发表于2017-10-25 17:31 被阅读3400次

    说明:文章截选自实验楼教程【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 )环境上工作(这使得它几乎不可能在生产服务器上使用), 它依然允许执行任意代码。这使它成为一个巨大的安全风险,因此它绝对不能用于生产环境。

    运行中的调试器的截图:

    最后

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

    教程列表如下:

    image.png

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

    相关文章

      网友评论

        本文标题:Flask运行及调试

        本文链接:https://www.haomeiwen.com/subject/pvxcpxtx.html