sqlalchemy 最简易用法

Django 为咱们提供了极为优秀的对象关系模型(ORM),经过 ORM 能够很方便的将对象操做映射为对数据库的操做。html

可是 DjangoORM 只能应用在 Django 项目中,为了在其余项目中使用 ORM ,能够选用 sqlalchemypython

Python 中有不少 ORM 库,可是作的最好的是 DjangoORM ,可是你没法脱离 Django 单独使用它,除此以外还有 sqlalchemySQLObjectStrompeewee 等等

所以本教程接下来介绍如何在普通的 Python 项目中使用 ORM 来操做数据库,包括基本的对数据库、数据表、数据行的操做,进阶的索引、各类约束,以及高级的事务、锁、并发版本控制等高级内容。mysql

本教程以 Mysql 为目标数据库,使用的 sqlalchemy 版本为 1.4.15 ,若是想使用其余数据库,请查看 Dialects More
Name: SQLAlchemy
Version: 1.4.15
Summary: Database Abstraction Library
Home-page: http://www.sqlalchemy.org
Author: Mike Bayer
Author-email: mike_mp@zzzcomputing.com
License: MIT
Location: c:\users\17293\.virtualenvs\project_jd-wbhajpan\lib\site-packages
Requires: greenlet
Required-by:

执行一下命令安装sql

pip install sqlalchemy

链接 Mysql 服务器

使用 sqlalchemy 的代码充当的是 Mysql 客户端的角色。数据库

链接数据库须要驱动程序,sqlalchemy 支持很是多的 Mysql驱动程序。bash

sqlalchemy 官方支持的驱动程序列表: DBAPI Support

本教程选用 mysqlclient 做为驱动程序。使用该驱动程序须要如下两个程序,执行命令安装他们。服务器

pip install mysql-connector-python-rf
pip install mysqlclient
链接不一样数据库须要不一样的驱动程序,例如链接 SQL Server 有 pymssql 驱动程序。

好了,咱们如今已经有了链接 Mysql 的驱动程序了session

class DB:
    Base = declarative_base()

    class ProductModel(Base):
        # 表的名字:
        __tablename__ = 'product'

        # 表的结构:
        id = Column(Integer(), primary_key=True)
        url = Column(String(256), unique=True)
        name = Column(String(512))
        brand = Column(String(64))
        price = Column(Float())
        sales_volume = Column(Integer())
        score1Count = Column(Integer())
        score2Count = Column(Integer())
        score3Count = Column(Integer())
        score4Count = Column(Integer())
        score5Count = Column(Integer())

    db_config = {
        'db_username': 'root',
        'db_password': 'yjcyjc',
        'db_host': 'localhost',
        'db_port': 3306,
        'db_database_name': 'd_test',
    }

    # 初始化数据库链接:
    link_sql = 'mysql+mysqlconnector://{db_username}:{db_password}@{db_host}:' \
               '{db_port}/{db_database_name}?' \
               'auth_plugin=mysql_native_password'.format(**db_config)

    engine = create_engine(link_sql, echo=True)
    # 建立DBSession类型:

    DBSession = sessionmaker(bind=engine)

    Base.metadata.create_all(engine)

操做数据库

建立数据库

删除数据库

修改数据库

操做数据表

建立表

定义模型

执行迁移

删除表

修改表

操做数据记录(记录行)

新增数据

删除数据

修改数据

查找数据

相关文章
相关标签/搜索