python-Flask_SQLAlchemy(2)

2018-03-31  本文已影响0人  SmallPot_Yang

SQLAlchemy模型与表映射

[TOC]

模型与表映射

  1. 模型需要继承自db.Model,映射到表中的属性需写成db.Column的数据类型。

  2. 数据类型:

    • db.Integer => int
    • db.String(60) => varchar,括号内为字符串限制长度
    • db.Text => Text
  3. 字段参数:

    • primary_key=True =>设为主键
    • autoincrement=True =>自增长
    • nullable=True => 字段可为空

例子:

SQL代码

create table article (
     id int primary key autoincrement,
     title varchar(100) not null,
     content text not null,
)

python代码

# 首先继承自db.Model
class Article(db.Model):
    __tablename__ = 'article' # 指定一个表名
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)

db.create_all()     #将模型映射到数据库中

增删改查操作

    add = Article(title='aaa',content='bbbb')   #实例对象
    db.session.add(add) #绘制SQL语句
    db.session.commit() #提交事务,执行
Q1 = Article.query.filter(Article.id == '2').first()    #返回一条数据
Q2 = Article.query.filter(Article.id == '2').all()      #返回所有数据,一个数组
Q1 = Article.query.filter(Article.id == '2').first()     # 先查找 获取数据
Q1.title = '新的标题2'          #以操作对象的方式修改数据
db.session.commit()             #提交事务,执行
D1 = Article.query.filter(Article.id == '2').first()     # 先查找 获取数据
db.session.delete(D1)           #以delete方法删除
db.session.commit()             #提交事务,执行            
上一篇下一篇

猜你喜欢

热点阅读