Flask(数据库和模型 十)
使用原生SQL来进行sqlite的使用
sqlite的好处
1 | # -*- coding: utf-8 -*- |
ORM
什么是ORM
类和对象封装
对象关系映射(Object Relational Mapping,简称ORM)是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。 这也同时暗示着额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。 更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。
好处
- 避免SQL注入
- 无需为各个不同的数据写不同的查询语句
坏处
- 每个具体的语法不一样,但是SQL语句是通用的
- 学习成本较高
建表
- 手工建表:先创建,再根据表结构写代码
- ORM:先写代码,通过代码自动创建表结构
ORM数据库创建步骤
安装
1 | pip install flask-sqlalchemy |
配置
1 | from flask import Flask |
'mysql+pymysql://root:123456@localhost:3306/demo'
按照示例填写即可
各种数据库的URI
- Postgres
1 | postgresql://账号:密码@localhost/mydataase |
- Mysql
1 | mysql://账号:密码@localhost/mydataase |
- Oracle
1 | oracle://账号:密码@localhost/mydataase |
- SQLite
1 | sqlite:////path/mydataase.db |
定义表结构,设计表
1 | class User(db.Model): |
创建表
1 | def create_all(): |
运行
创建一个demo
数据库
运行之后就在我们本地的mysql数据中创建了user
表
其他方式创建
命令行
1 | flask shell |
migrate
1 | pip install flask-migrate |
1 | from flask import Flask |
加一行
1 | migrate = Migrate(app, db) |
使用
1 | flask db migrate |
添加数据
1 |
|
查询数据
1 |
|