環境
$ 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)