SQLAlchemyを使ってMySQLに接続する

環境

$ cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)
$ python3 --version
Python 3.6.8

インストールする

$ pip install SQLAlchemy
$ pip install mysql-connector-python

確認する。

$ python3
Python 3.6.8 (default, Nov 16 2020, 16:55:22) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlalchemy
>>> sqlalchemy.__version__ 
'1.3.23'

使ってみる

#!python3
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.schema import Column
from sqlalchemy.types import Integer, String

USER='...'
PASSWORD='...'
HOST='...'
DATABASE='...'

# MySQL Connector/Pythonを使うためmysqlconnectorを指定する
engine=create_engine(f'mysql+mysqlconnector://{USER}:{PASSWORD}@{HOST}/{DATABASE}')

# テーブルを定義する
Base=declarative_base()
class Animal(Base):
    __tablename__='animals'
    __table_args__=({"mysql_charset": "utf8mb4"})
    id=Column(Integer, primary_key=True, autoincrement=True)
    name=Column(String(30), nullable=False)

# テーブルを作成する
Base.metadata.create_all(engine)

# セッションを作成する
Session=sessionmaker(engine)
session=Session()

# データを追加する
cat=Animal(name='cat')
dog=Animal(name='dog')
session.add(cat)
session.add(dog)
session.commit()

# データを更新する
cat=session.query(Animal).get(1)
cat.name='pengin'
session.commit()

# データを取得する
animals=session.query(Animal).all()
for animal in animals:
    print('id=',animal.id,'name=',animal.name)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください