0
1

SQLAlchemy: MariaDB のデータを作成 (Create)

Last updated at Posted at 2022-04-19

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'
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1