Flask基础

Flask简介

Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

特点

  • 非常齐全的官方文档,社区活跃度高,上手方便
  • 轻量级的可定制框架
  • 灵活、轻便、安全
  • 强大的插件库
  • mvc设计模式

Flask依赖

  • jinja2模板引擎
  • Werkzeug WSGI工具集
  • ltsdangerous基于Django的签名模块

Hello Flask

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'hello world'

if __name__ == '__main__':
    app.run(debug=True)

Flask_Script

  • 可以添加Flask脚本扩展库
  • 添加命令和参数
  • 使用
    • 安装
      • pip install flask_script
    • 初始化
      • 使用app构建Manager对象
    • 调试
      • runserver
        • -d 调试模式
        • -r 自动加载
        • -p 端口
        • -h 主机
        • --theraded 多线程模式
      • shell

解包

简单解包

简单解包

路由管理

  • 使用的时候容易出现循环引用的问题
  • 使用懒加载的方式
    • 使用函数调用的形式进行加载
  • 使用新方案解决
    • 蓝图
      • 代表一种规划
    • 路由的表达
    • flask-blueprint

flask-blueprint

  • 安装
    • pip install flask-blueprint
  • 初始化
    • 创建蓝图对象
      • name
      • 导入名字 name
    • 需要使用app进行初始化
      • 注册在app上
  • 使用
    • 和Flask对象差不多
    • 直接作为装饰器用来注册路由

二级解包

二级解包

数据库

  • 在大多数web开发中都是使用关系型数据库
  • ORM
    • SQLAlchemy
  • flask-sqlalchemy
    • 使用过程
      • 安装
        • pip install flask-sqlalchemy
      • 初始化
        • 需要使用app进行SQLalchemy对象构建
          • 使用懒加载方法 init_app方法构建
        • SQLALCHEMY_DATABASE_URI
          • 连接数据驱动的路径
          • URI格式
            数据库+驱动://用户名:密码@主机:端口/具体的库
        • SQLALCHEMY_TRACK_MODIFICATIONS
          • 将要被添加进来的特性
          • 默认是False
      • 使用
        • 定制模型
          • 继承自Model
          • 创建字段
        • 数据库需要手动创建
          • SQLalchemy对象 .create_all
          • 删除 drop_all
          • 不能差量更新
        • 数据操作
          • 插入
            • 创建对象
            • SQLalchemy对象.session.add()
            • 添加完成后要进行提交 commit()

Flask-Migrat

  • 迁移插件
  • 在Flask中像Django一样进行模型迁移
  • 使用过程
    • 安装
      • pip install Flask—Migrate
    • 初始化
      • 使用app和db进行初始化
      • 可以使用懒加载方式
    • 使用
      • flask db 指令
        • init
          初始化,第一次进行初始化,后面就不用了
        • migrate
          迁移文件
        • upgrade
          生成迁移文件
      • 结合flask-script使用
        • 在manager添加管理指令
          • manager.add_command("db",MigrateCommand)
        • python manage db 指令

项目结构

原版

  • HelloFlask.py

改良

三阶改装

  • manage.py
    项目管理文件
  • App
    • __init__
      初始化文件
    • setting
      • config
        全局项目配置
    • ext
      • extension
        扩展库,除了与路由相关的全放入
    • view(apis)
      路由,视图层
    • models
      定制模型
      三阶改装
posted @ 2020-04-01 11:31  YNZero  阅读(137)  评论(0)    收藏  举报