python轻量级web框架flask初探,搭建网站原来这么简单
作者:mmseoamin日期:2024-04-01

python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第1张

✨✨ 欢迎大家来到景天科技苑✨✨

🎈🎈 养成好习惯,先赞后看哦~🎈🎈

🏆 作者简介:景天科技苑

🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者,掘金优秀博主,51CTO博客专家等。

🏆《博客》:Python全栈,前后端开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi,flask等框架,linux,shell脚本等实操经验,网站搭建,面试宝典等分享。

所属的专栏:flask框架零基础,进阶应用实战教学

景天的主页:景天科技苑

文章目录

  • 1.flask简介
  • 2.创建flask项目
    • 1.创建程序入口文件
    • 2.运行程序
    • 3.浏览器访问网站
    • 3.代码分析
    • 4.项目中flask加载项目配置的二种方式

      1.flask简介

      Flask诞生于2010年,是Armin ronacher(阿明·罗纳彻)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。

      Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。

      比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。

      Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。

      flask的 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。Itsdangrous(token加密模块),Click(终端命令管理工具),flask内核本身,这5个核心模块组成 Flask 框架。

      官网: https://flask.palletsprojects.com/en/3.0.x/

      python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第2张

      官方文档: [https://dormousehole.readthedocs.io/en/latest/index.html]

      python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第3张

      Flask常用第三方扩展包:

      • Flask-SQLAlchemy:操作数据库,ORM;
      • Flask-script:终端脚本工具,脚手架; ( 淘汰,官方内置脚手架:Click)
      • Flask-migrate:管理迁移数据库;
      • Flask-Session:Session存储方式指定;
      • Flask-Mail:邮件;
      • Flask-Login:认证用户状态;(django内置Auth模块,用于实现用户登录退出,)
      • Flask-OpenID:认证, OAuth;(三方授权,)
      • Flask-RESTful:开发REST API的工具;
      • Flask JSON-RPC: 开发json-rpc远程服务[过程]调用
      • Flask-Bable:提供国际化和本地化支持,翻译;
      • Flask-Moment:本地化日期和时间
      • Flask-Admin:简单而可扩展的管理接口的框架
      • Flask-Bootstrap:集成前端Twitter Bootstrap框架(前后端分离,除了admin站点,基本不用这玩意)
      • Flask-WTF:表单生成模块;(前后端分离,除了admin站点,基本不用这玩意)
      • Flask-Marshmallow:序列化(类似django restframework的序列化器,比django的更好用)

        可以通过 https://pypi.org/search/?c=Framework+%3A%3A+Flask

        查看更多flask官方推荐的扩展

        python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第4张

        准备

        安装flask,则以下命令:

        pip install flask

        我装过了,目前最新版本是3.0.2

        python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第5张

        2.创建flask项目

        与django不同,flask不会提供任何的自动操作,所以需要手动创建项目目录,需要手动创建启动项目的管理文件

        例如,手动创建项目目录 flaskdemo,在目录中创建manage.py,在pycharm中打开项目并指定上面创建的虚拟环境

        1.创建程序入口文件

        manage.py是flask框架的启动入口文件。名字可以是app.py/run.py/main.py/index.py/manage.py/start.py等

        python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第6张

        manage.py,代码:

        # 1. 导入flask核心类
        from flask import Flask
        # 2. 初始化web应用程序的实例对象,__name__拿到的就是当前文件名
        app = Flask(__name__)
        # 4. 可以通过实例对象app提供的route路由装饰器,绑定视图与uri地址的关系
        @app.route("/")
        def index():
            # 5. 默认flask支持函数式视图,视图的函数名不能重复,否则报错!!!
            # 视图的返回值将被flask包装成响应对象的HTML文档内容,返回给客户端。
            return "

        hello flask

        " if __name__ == '__main__': # 3. 运行flask提供的测试web服务器程序,端口号默认是5000,开启debug之后,只要修改代码,服务都会自动重启 app.run(host="0.0.0.0", port=5000, debug=True)

        看下源码,host默认是127.0.0.1,port默认是5000

        python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第7张

        python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第8张

        2.运行程序

        python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第9张

        3.浏览器访问网站

        在浏览器输入flask运行提供的url

        python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第10张

        3.代码分析

        我们看下Flask的参数

        python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第11张

        # 导入Flask类
        from flask import Flask
        """
        Flask类的实例化参数:
        import_name      Flask程序所在的包(模块),传 __name__ 就可以,这个是必填项,其他都非必须
                                   其可以决定 Flask 在访问静态文件时查找的路径
        static_url_path    静态文件的url访问路径,可以不传,默认为:/ + static_folder
        static_folder        静态文件存储的文件夹,可以不传,默认为 static
        template_folder  模板文件存储的文件夹,可以不传,默认为项目根目录下的 templates文件夹
        """
        app = Flask(__name__)
        # 编写路由视图
        # flask的路由是通过给视图添加装饰器的方式进行编写的。当然也可以分离到另一个文件中。
        # flask的视图函数,flask中默认允许通过return返回html格式数据给客户端。
        @app.route('/')
        def index():
            # 返回值如果是字符串,被自动作为参数传递给response对象进行实例化返回客户端
            return "

        hello flask

        " # 指定服务器IP和端口 if __name__ == '__main__': # 运行flask app.run(host="0.0.0.0", port=5000, debug=True)

        4.项目中flask加载项目配置的二种方式

        # 1. 导入flask核心类
        from flask import Flask
        # 2. 初始化web应用程序的实例对象
        app = Flask(__name__)
        """第一种:flask项目加载站点配置的方式"""  配置项属性名要大写
        # app.config["配置项"] = 配置项值
        # app.config["DEBUG"] = False
        """第二种:flask项目加载站点配置的方式"""
        # app.config是整个flask项目默认的配置属性,里面包含了所有的可用配置项,配置项的属性名都是大写字母或大写字母+下划线组成
        app.config = {
            "DEBUG": True
        }
        app.config.update(config)
        # 4. 可以通过实例对象app提供的route路由装饰器,绑定视图与uri地址的关系
        @app.route("/")
        def index():
            # 5. 默认flask支持函数式视图,视图的函数名不能重复,否则报错!!!
            # 视图的返回值将被flask包装成响应对象的HTML文档内容,返回给客户端。
            return "

        hello flask

        " if __name__ == '__main__': # 3. 运行flask提供的测试web服务器程序 app.run(host="0.0.0.0", port=5000)

        我们打印看下app.config,要么是大写字母,要么是大写字母加下划线连接

        并不是所有的参数都可以通过app.config来设置,我们看下app.config有哪些属性

        python轻量级web框架flask初探,搭建网站原来这么简单,在这里插入图片描述,第12张