• 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、浏览器访问

      

  • 相关阅读:
    git删除远程tag
    date的getTime问题
    EasyExcel读取excel文件反射成实体后全为NULL
    springboot回滚部分异常
    Java8 LocalDate、Date、LocalDateTime、时间戳的转换
    mysql未查到行,返回一条默认结果
    Maven No archetype found in remote catalog. Defaulting to internal catalog.
    HashMap相关资料
    HibernateHql
    用户名登录
  • 原文地址:https://www.cnblogs.com/bad-robot/p/9842419.html
Copyright © 2020-2023  润新知