Arch Linux で必要なライブラリーをインストール
sudo pacman -S python-sqlalchemy
sudo pacman -S python-mysqlclient
Ubuntu で必要なライブラリーをインストール
sudo apt install python3-sqlalchemy
sudo apt install python3-mysqldb
プログラム
maria_create.py
#! /usr/bin/python
#
# maria_create.py
#
# Sep/03/2024
#
# --------------------------------------------------------
import sys
import string
#
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base
from sqlalchemy import Column, Integer, String, DateTime, Sequence
from sqlalchemy.orm import scoped_session, sessionmaker
#
# --------------------------------------------------------
def dict_append_proc(dict_aa,key,name,population,date_mod):
dict_aa[key] = {'name':name,'population':population,'date_mod':date_mod}
#
return dict_aa
#
# --------------------------------------------------------
def data_prepare_proc():
#
dict_aa = {}
#
dict_aa = dict_append_proc(dict_aa,'t3321','岡山',519476,'2003-3-20')
dict_aa = dict_append_proc(dict_aa,'t3322','倉敷',291835,'2003-5-15')
dict_aa = dict_append_proc(dict_aa,'t3323','津山',863754,'2003-8-18')
dict_aa = dict_append_proc(dict_aa,'t3324','玉野',469172,'2003-1-9')
dict_aa = dict_append_proc(dict_aa,'t3325','笠岡',237451,'2003-3-4')
dict_aa = dict_append_proc(dict_aa,'t3326','井原',518397,'2003-5-21')
dict_aa = dict_append_proc(dict_aa,'t3327','総社',248156,'2003-7-23')
dict_aa = dict_append_proc(dict_aa,'t3328','高梁',778294,'2003-10-26')
dict_aa = dict_append_proc(dict_aa,'t3329','新見',463751,'2003-12-15')
#
return dict_aa
#
# --------------------------------------------------------
sys.stderr.write("*** 開始 ***\n")
#
dict_aa = data_prepare_proc()
#
host ='localhost'
data_base = 'city'
user ='scott'
password = 'tiger123'
#
db_url = "mysql://" + user + ":" + password + "@" + host + "/" + data_base
engine = create_engine(db_url)
#
Base = declarative_base()
class City(Base):
__tablename__ = "cities"
id = Column(String(16), primary_key=True)
name = Column(String(255))
population = Column(Integer)
date_mod = Column(DateTime)
#
#
session = scoped_session(
sessionmaker(autocommit=False, autoflush=False, bind=engine)
)
#
City.__table__.drop(engine, checkfirst=True)
#
session.commit()
#
Base.metadata.create_all(bind=engine)
#
for key in dict_aa:
print(key)
unit = dict_aa[key]
city_a = City(id=key, name=unit['name'], population=unit['population'], date_mod = unit['date_mod'])
session.add(city_a)
#
session.commit()
#
sys.stderr.write("*** 終了 ***\n")
#
# --------------------------------------------------------
実行コマンド
./maria_create.py
確認したバージョン
$ python
Python 3.12.3 (main, Jul 31 2024, 17:43:48) [GCC 13.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlalchemy
>>> sqlalchemy.__version__
'1.4.50'