Flask框架重要知识点总结归纳 (完整版)

本文详细介绍了Flask框架的核心概念,包括其微服务架构、依赖的Werkzeug WSGI服务和jinja2模板。强调了Flask的灵活性和可扩展性,以及如何使用扩展增强功能。此外,还涵盖了Flask的安装、虚拟环境配置、路由系统、请求响应处理、模板语言Jinja2、session和flash技术,以及蓝图、DBUtils、SQLAlchemy等相关知识。同时,对比了Flask与Django的区别,并探讨了Flask的信号机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、flask

     a、Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器

     b、“微”(micro) 并不表示你需要把整个 Web 应用塞进单个 Python 文件(虽然确实可以 ),也不意味着 Flask 在功能上有所欠缺。微框架中的“微”意味着 Flask 旨在保持核心简单而易于扩展。Flask 不会替你做出太多决策——比如使用何种数据库。而那些 Flask 所选择的——比如使用何种模板引擎——则很容易替换。除此之外的一切都由可由你掌握。如此,Flask 可以与您珠联璧合。

     c、默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何已有多种库可以胜任的功能。然而,Flask 支持用扩展来给应用添加这些功能,如同是 Flask 本身实现的一样。众多的扩展提供了数据库集成、表单验证、上传处理、各种各样的开放认证技术等功能。Flask 也许是“微小”的,但它已准备好在需求繁杂的生产环境中投入使用。

二、安装

      a、安装:

pip3 install flask

三、虚拟环境

      a、安装:

pip3 install virtualenv

      b、# 创建虚拟环境 

virtualenv env1

      c、# 进入虚拟环境 

Scripts/activate

      d、 # 退出虚拟环境 

Scripts/deactivate

四、flask框架

      a、简介:轻量级框架
                     Django:无socket、中间件、路由系统、视图(CBV,FBV)、 模板、ORM、cookie、Session、Admin、Form、缓存、信号、序列化....
                     Flask:无socket、中间件(扩展)、路由系统、视图(CBV)、第三方模板(jinja2)、cookie、Session弱爆了

      b、 什么是wsgi?
                           Web服务网管接口,协议。

      c、Flask依赖一个实现了WSGI协议的模块:werkzeug

五、flask

       a、 -依赖于wsgi模块:wsgiref,werkzeug,wsgi

       b、  -实例化Flask对象

                  -静态文件前缀  /xxx

                  -静态文件目录

                  -模板路径

        c、 添加路由关系      

                  -将 Rule(url和视图函数)添加到Flask对象的url_map字段中

                  -两种添加路由的方式

        d、request

                 -request.form

                 -request.args 

六、基本使用

from flask import Flask

# 实例化Flask对象
app = Flask(__name__)

# 生成路由关系,并把关系保存到某个地方,app对象的 url_map字段中
@app.route('/xxxx')  # @decorator
def index():
    return "Index"

# def index():
#     return "Index"
# app.add_url_rule('/xxx', "n1", index)

if __name__ == '__main__':
    # 启动程序,监听用户请求
    # 一旦请求到来,执行 app.__call__方法
    # 封装用户请求
    # 进行路由匹配
    app.run()

     a、保存session的数据存到了浏览器上,
        - 优点:减轻了服务端的压力
        - 缺点:不安全

     b、路由系统:  

  • @app.route('/post/<path:path>')
  • @app.route('/login', methods=['GET', 'POST'])
  • @app.route('/user/<username>')
  • @app.route('/post/<int:post_id>')
  • @app.route('/post/<float:post_id>')

七、路由系统

     a、<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值