Flask入门:介绍与简单使用

1、Flask简介

  Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。

  Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。

2、Flask的依赖模块

  当前Flask的版本为1.0.2。
  跳转到flask模块,使用pipreqs获取flask的依赖:
pipreqs ./ --encoding=utf-8

  生成的requirements.txt内容如下:

blinker==1.4
Jinja2==2.10
Click==7.0
itsdangerous==1.1.0
Werkzeug==0.14.1
Flask==1.0.2
setuptools==39.0.1
pyOpenSSL==18.0.0
python-dotenv==0.10.0

3、Flask依赖模块介绍

3.1、Blinker

  官方文档: Blinker Documentation

  Blinker的使用:http://python.jobbole.com/85554/

  Blinker 是一个基于Python的强大的信号库,它既支持简单的对象到对象通信,也支持针对多个对象进行组播。Flask的信号机制就是基于它建立的。

  Blinker的内核虽然小巧,但是功能却非常强大,它支持以下特性:

  • 支持注册全局命名信号
  • 支持匿名信号
  • 支持自定义命名信号
  • 支持与接收者之间的持久连接与短暂连接
  • 通过弱引用实现与接收者之间的自动断开连接
  • 支持发送任意大小的数据
  • 支持收集信号接收者的返回值
  • 线程安全

3.2、jinja2

  官方文档:http://jinja.pocoo.org/

  参考链接:https://www.cnblogs.com/dachenzi/p/8242713.html

  jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一个模板引擎,为Flask提供模板支持,由于其灵活,快速和安全等优点被广泛使用。

  jinja2之所以被广泛使用是因为它具有以下优点:

  • 相对于Template,jinja2更加灵活,它提供了控制结构,表达式和继承等。
  • 相对于Mako,jinja2仅有控制结构,不允许在模板中编写太多的业务逻辑。
  • 相对于Django模板,jinja2性能更好。
  • Jinja2模板的可读性很棒。

3.3、Click

  官方文档:https://click.palletsprojects.com/en/7.x/

  参考链接:https://www.cnblogs.com/dachenzi/p/7995539.html

  click模块是Flask的作者开发的一个第三方模块,用于快速创建命令行。它的作用与Python标准库的argparse相同,但是,使用起来更简单。

3.4、itsdangerous

  官方文档:https://pythonhosted.org/itsdangerous/

  参考链接:https://zhyannan.gitee.io/zyannan.blog/2017/09/25/2017-9-25-itsdangerous/#more

  如果你想向不可信的环境发送数据,但又担心数据被别人利用,就可以使用 itsdangerous来加密签名你的数据。接收者可以破译内容,来看看你的包裹里有什么,但他们没办法修改你的内容,除非他们也有你的密钥。

  itsdangerous内部默认使用了HMAC和SHA1来签名,基于 Django 签名模块。它也支持JSON Web 签名 (JWS)。这个库采用BSD协议,由Armin Ronacher编写,而大部分设计与实现的版权归Simon Willison和其他的把这个库变为现实的Django爱好者们。

3.5、Werkzeug

  官方文档:http://werkzeug.pocoo.org/

  中文文档:https://werkzeug-docs-cn.readthedocs.io/zh_CN/latest/

  参考链接:

  Werkzeug是一个WSGI工具包,他可以作为一个Web框架的底层库。这里稍微说一下, werkzeug 不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个 WSGI 工具包,它可以作为一个 Web 框架的底层库,因为它封装好了很多 Web 框架的东西,例如 Request,Response 等等。

 4、Flask简单使用

  定义url:/index/,访问该url返回hello。

 4.1、源码

from flask import Flask,Response

app = Flask(__name__)

@app.route("/index/")
def index():
    return Response("hello")

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

4.2、浏览器访问

  

posted @ 2018-12-06 19:26  RobotsRising  阅读(691)  评论(0编辑  收藏  举报