五、模型基本操作
- 模型概念
- flask 默认并没有提供任何数据库操作API
- flask 操作数据库, 可以使用原生SQL语句,也可以使用ORM
- ORM 对象关系映射
用于实现面向对象编程语言里不同类型系统的数据之间的转换。
将对象的操作转换为原生SQL。
- 易用性,可以有效减少重复SQL
- 性能损耗少
- 设计灵活,可以轻松实现复杂查询
- 移植性好
flask-SQLALchemy插件
flask-SQLALchemy
flask-sqlachemy官网
中文文档:http://www.pythondoc.com/flask-sqlalchemy/quickstart.html
英文文档: http://flask-sqlalchemy.pocoo.org/2.3/quickstart/
- 安装插件
pip instal flask-sqlaclchemy
- 初始化(配置)
- 数据库配置 __init__.py
# /// 相对路径
# //// 绝对路径
app.config['SQLALCHE_DATABASE_URI'] = 'sqlite:///test.db' # sqlite 保存路径
- models.py 中使用db
db = SQLAlchemy()
- __init__.py 中和应用关联
db.init_app(app)
- 使用
# 定义模型
class User(db.Model):
id = db.Column(db.Interger, primary_key=True, autoincrement=True)
name = db.Column(db.String(40),unique=True)
age = db.Column(db.Integer)
- 以下在views中操作
# 创建表和数据库
db.create_all() # 在views中封装个方法
# 添加数据
# 模型类对象
user = User()
user.name = '%d-测试'%random.randrange(1000)
user.age = random.randint(18,30)
# 添加
db.session.add(user)
# 写入数据库
db.session.commit()
# 查询数据
# 用户表中所有数据
users = User.query.all()
在django中,默认id会自动添加,并且设置为主键,自增长
flask模型中,必须设置主键,否则会报错!!!