美文网首页
python-Flask_SQLAlchemy(2)

python-Flask_SQLAlchemy(2)

作者: SmallPot_Yang | 来源:发表于2018-03-31 13:35 被阅读0次

    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()             #提交事务,执行            
    

    相关文章

      网友评论

          本文标题:python-Flask_SQLAlchemy(2)

          本文链接:https://www.haomeiwen.com/subject/xrpgcftx.html