美文网首页
python-sqlalchemy 使用学习记录之创建表、增、删

python-sqlalchemy 使用学习记录之创建表、增、删

作者: EndPein | 来源:发表于2018-09-02 03:04 被阅读0次

创建表

创建数据表依赖的是 ssqlalchemy.ext.declarative 下面的 declarative_base 方法。所以需要先行引入

from sqlalchemy.ext.declarative import declarative_base

表类型这块可以看一下官方文档的介绍,基本能用到的都全部由官方抽象。 http://docs.sqlalchemy.org/en/latest/core/type_basics.html#generic-types

例如常见的 Integer、String、Date、DateTime、BigInteger、Boolean 可以直接从sqlalchemy模块中引用

from sqlalchemyimport Column,Integer, String, DateTime, Boolean

我们可以先创建一个信息表,这个表结构大概样例如下

我们可以先创建一个类 ,同时需要在里面指定数据表名称,但是在这之前,我们自己创建类需要继承sqlalchemy的declarative_base方法


from sqlalchemy.ext.declarativeimport declarative_base

from sqlalchemy.orm import sessionmaker

from sqlalchemyimport Column,Integer, String, DateTime, Boolean

from sqlalchemyimport create_engine

engine = create_engine("mysql+pymysql://root:@127.0.0.1/table?charset=utf8")

Base = declarative_base()

class My_Table(Base):

    tablename__ ='test_table'

    id = Column(Integer,primary_key =True)

    title = Column(String(200),nullable =False)

    content = Column(String(2000),nullable =False)

    types = Column(String(10),nullable =False)

    image = Column(String(300),)

    author = Column(String(20),)

    view_count = Column(Integer)

    created_at = Column(DateTime)

    is_valid = Column(Boolean)

My_Table.metadata.create_all(engine) 

Session = sessionmaker(bind=engine)

以上代码执行后,就会创建数据表,接下来,我在逐行讲解一下具体的内容分别是什么,首先是引入了sessionmaker,Session的主要目的是建立与数据库的会话,它维护你加载和关联的所有数据库对象。它是数据库查询(Query)的一个入口。

在Sqlalchemy中,数据库的查询操作是通过Query对象来实现的。而Session提供了创建Query对象的接口

在我们创建了My_Table这个类以后,我们使用了 .metadata.create_all()这个方法,并将engine作为参数传入(engine是连接数据库的方法),你也可以直接使用父类Base的方式将多个表同时创建,例如Base.metadata.create_all(engine) 。 

接下来在来说My_Table 里面的内容,自己创建类继承自declarative_base()。在创建的时候,我们会默认给类加一个表名。(__tablename__)

然后就是表中的各个对象的创建

增、删、改、查

在数据库表创建好以后,我们可以创建一个自己的类,用来写自己的一些功能,我们先写Orm_Test这个类。

class OrmTest(object):

    def __init__(self):

        self.session = Session()

    def add_one(self):

    #'新增一条记录'

        new_obj = My_Table(title ='标题',content ='内容',types ='0',)

        self.session.add(new_obj)

        self.session.commit()

        return new_obj

    def get_one(self):

        #查询一条数据

        return self.session.query(My_Table).get(3)

    def get_all(self):

        #查询多条数据

        return self.session.query(My_Table).filter_by(is_valid=True)

    def update(self,pk):

    #修改数据

        new_obj =self.session.query(My_Table).get(pk)

        if new_obj:

            new_obj.is_valid =0

            self.session.add(new_obj)

            self.session.commit()

            return True

        return False

    def delete(self,pk):

        #删除数据

        new_obj =self.session.query(My_Table).get(pk)

        self.session.delete(new_obj)

        self.session.commit()

相关文章

  • python-sqlalchemy 使用学习记录之创建表、增、删

    创建表 创建数据表依赖的是 ssqlalchemy.ext.declarative 下面的declarative_...

  • python基础-03

    python操作mysql数据库 创建数据表 数据表的 增 删 查 改 增 查 改 删

  • 数据库操作

    FMDB 创建数据库 创建表 增 删 改 查 索引 事务 多表联查

  • MySQL基础

    SQL学习 MySQL 数据库相关 表相关 表的增、删、改、查 首先先创建一个表teachercreate tab...

  • Mac mysql 使用教程

    mysql 安装成功,接下来就详细的说说使用教程,下面通过创建库,创建表,以及表中数据的增、查、改、删来详细说明。...

  • coreData的简单使用

    这里只记录coreData的简单使用(增,删,改,查) 创建Data Model(注意,基础工程在创建的时候并没有...

  • iOS FMDB

    iOS FMDB 数据库创建、增、删、改、查。 创建对象 创建表 integer,text:类型 primary ...

  • 数据库学习笔记(一)常见数据库语法

    创建数据库 创建表 操作表中数据 增insert into 表名 value ();插入一列 插入一行 删dele...

  • Android原生SQLite常用SQL语句

    Android原生SQLite常用SQL语句 创建表 增 删 改 查 增加字段 删除字段

  • iOS 数据存储

    使用fmdb如何封装创建表设置主键,主键要求增:删:改:查: 背景:将用户与人工客服的聊天消息存储下来,可以查询历...

网友评论

      本文标题:python-sqlalchemy 使用学习记录之创建表、增、删

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