Flask入门

Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展,都需要用第三方的扩展来实现,比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。

其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心。

一个最小的 Flask 应用看起来会是这样:

新建hello.py(确保应用文件名不是flask.py就行)

from flask import Flask
app = Flask(__name__)

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

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

运行代码后,可以通过浏览器访问 http://127.0.0.1:5000/ ,你会看见 Hello World 问候。

这段代码做了些什么呢?

  1. 首先,我们导入了 Flask 类。这个类的实例将会是我们的 WSGI 应用程序。
  2. 接下来,我们创建一个该类的实例,第一个参数是应用模块或者包的名称。 如果你使用单一的模块(如本例),你应该使用__name__ ,因为模块的名称将会因其作为单独应用启动还是作为模块导入而有不同( 也即是 '__main__' 或实际的导入名)。这是必须的,这样 Flask 才知道到哪去找模板、静态文件等等。
  3. 然后,我们使用 route() 装饰器告诉 Flask 什么样的URL 能触发我们的函数。
  4. 这个函数的名字也在生成 URL 时被特定的函数采用,这个函数返回我们想要显示在用户浏览器中的信息。
  5. 最后我们用 run() 函数来让应用运行在本地服务器上。 其中 if __name__ == '__main__': 确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。

如何关闭服务器?:

按:Ctrl + C

如何通过外网也能访问该服务器?

目前这个服务器,你只能在自己的计算机上进行访问,外部无法访问,如果想通过外部网络也能访问,需要给run()方法传入host参数:

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

启用调试模式(仅用于开发阶段):

启用调试支持,服务器会在代码修改后自动重新载入,并在发生错误时给出错误提醒,可以通过以下两种方式开启。

应用对象上设置debug属性:

app.debug = True
app.run()

作为 run 方法的一个参数传入:

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

上述两种方式效果一样。

 

posted @ 2020-12-24 14:26  eliwang  阅读(84)  评论(0编辑  收藏  举报