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)

操做數據庫

建立數據庫

刪除數據庫

修改數據庫

操做數據表

建立表

定義模型

執行遷移

刪除表

修改表

操做數據記錄(記錄行)

新增數據

刪除數據

修改數據

查找數據

相關文章
相關標籤/搜索