• 快速上手Flask(一) 认识框架Flask、项目结构、开发环境


    快速上手Flask(一) 认识框架Flask、项目结构、开发环境

    Web开发轻量级框架Flask

    github: https://github.com/pallets/flask
    官网: https://flask.palletsprojects.com/en/2.1.x/
    官方文档:https://flask.net.cn/installation.html#installation

    Python最出名的框架要数Django,此外还有Flask、Tornado等框架。虽然Flask不是最出名的框架,但是Flask应该算是最灵活的框架之一,这也是Flask受到广大开发者喜爱的原因。

    Flask是一个相对于Django而言轻量级的Web框架。

    Flask本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login),都需要用第三方的扩展来实现。其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是Flask框架的核心。

    扩展列表:http://flask.pocoo.org/extensions/

    Flask is a web framework for Python, based on the Werkzeug toolkit.

    Flash历史和团队

    flask的诞生于2010年的愚人节,本来它只是作者无意间写的一个小玩具,没想到它却悄悄流行起来了。漫长的8年时间,flask一直没有发布一个严肃的正式版本,但是却不能阻挡它成了github上最受好评的Python Web框架。

    flask内核内置了两个最重要的组件,所有其它的组件都是通过易扩展的插件系统集成进来的。这两个内置的组件分别是werkzeug和jinja2。

    Pallets 项目

    官方:https://palletsprojects.com/

    The Pallets Projects are a collection of Python web development libraries that are associated with the Flask microframework as originally developed by Armin Ronacher. Today the Pallets Projects are a community-driven organization with the goal to maintain and improve these libraries.

    Pallets 项目是Python Web开发库的集合,这些库与Armin Ronacher最初开发的Flask 框架相关。如今,Pallets 项目是一个由社区驱动的组织,其目标是维护和改善这些库。

    Pocoo团队的成员来自Python社区,统一以Pocoo的名义参与多个Python库和应用的开发工作。团队由Georg Brandl和Armin Ronacher领导。

    Pocoo团队开发了许多广受欢迎的项目,其中包括:

    • Flask微网络开发框架
    • Jinja2模板引擎
    • Pygments语法高亮包
    • Sphinx文档处理器
    • Werzeug WSGI工具集

    在这里插入图片描述

    flask运行过程

    django与flask都是实现了WSGI协议
    flask用的werkzeug来wsgi进行了封装,werkzeug是用run_simple(‘localhost’, 4000, hello) 第一个是ip,第二个是项目启动端口,第三个是可执行对象,当请求wsgi,就会调用第三个参数

    Web服务器会把来自客户端的所有请求都交给Flask程序实例。
    程序实例使用Werkzeug来做路由分发(URL请求和视图函数之间的对应关系)。
    根据每个URL请求,找到具体的视图函数并进行调用。
    Flask调用视图函数后,可以返回两种内容:

    • 字符串内容:将视图函数的返回值作为响应的内容,返回给客户端(浏览器)。
    • HTML模版内容:获取到数据后,把数据传入HTML模板文件中,模板引擎负责渲染HTTP响应数据,然后返回响应数据给客户端(浏览器)。

    使用flask的场景

    它主要面向需求简单,项目周期短的小应用。Flask入门非常的简单,并可以通过扩展来增加其他的功能。

    使用PyCharm快速创建一个Flask项目

    如何使用PyCharm快速创建一个Flask项目
    参考URL: https://blog.csdn.net/xili1342/article/details/125610684

    1)创建一个新的Flask项目
    File–>New Project 选择flask:
    在这里插入图片描述

    创建的文件夹里有自动包含以下:
    刚起步的时候 Flask 有许多带有合理缺省值的配置值和惯例。按照惯例, 模板和静态文件存放在应用的 Python 源代码树的子目录中,名称分别为 templates 和 static 。
    static目录:静态文件
    templates目录:模板
    venv目录: 虚拟Python环境,在虚拟环境里用pip安装的包都会安装到当前的虚拟环境中
    app.py文件:
    在这里插入图片描述

    一个最小的应用app.py

    from flask import Flask
    
    # Flask函数接收一个参数name,它会指向程序所在的模块
    app = Flask(__name__)
    
    #装饰器的作用是将路由映射到视图函数
    @app.route('/')
    def hello_world():
        return 'Hello World!'
    
    
    if __name__ == '__main__':
        # Flask应用程序实例的run方法启动WEB服务器
        app.run()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    1. 首先我们导入了 Flask 类。 该类的实例将会成为我们的 WSGI 应用。

    2. 接着我们创建一个该类的实例。第一个参数是应用模块或者包的名称。如果你使用 一个单一模块(就像本例),那么应当使用 name ,因为名称会根据这个 模块是按应用方式使用还是作为一个模块导入而发生变化(可能是 ‘main’ , 也可能是实际导入的名称)。这个参数是必需的,这样 Flask 才能知道在哪里可以 找到模板和静态文件等东西。 更多内容详见 Flask 文档

    3. 然后我们使用 route() 装饰器来告诉 Flask 触发函数的 URL 。

    4. 函数名称被用于生成相关联的 URL 。函数最后返回需要在用户浏览器中显示的信息。

    2)项目启动

    Pycharm 点击run运行
    在这里插入图片描述
    使用命令行运行app.py

    python app.py
    
    • 1

    使用flask命令运行
    现在通过设定环境变量 FLASK_APP=app.py 来表示将要运行的应用是哪个,然后运行 flask run 来启动该应用。

    flask run
    
    • 1

    指定IP及端口:

    flask run --host=0.0.0.0 --port= 8001
    
    • 1

    或:

    flask run -h 0.0.0.0 -p 8001
    
    • 1
  • 相关阅读:
    让学前端不再害怕英语单词(三)
    MMICCI2015- U-Net: Convolutional Networks for Biomedical Image Segmentation
    RPA-2 之B/S第一讲:selenium驱动下载与安装
    hyperf笔记
    Seata四大模式之AT模式详解及代码实现
    数据分析平台重点演示内容梳理
    黑马C++ 01基础 —— 指针、结构(重点和难点)
    Codeforces Round 895 div3 | JorbanS
    js延迟加载的方法?
    检测防火墙是否开启、判断程序是否加入防火墙白名单(附源码)
  • 原文地址:https://blog.csdn.net/inthat/article/details/125998033