memorandum

pythonとか備忘録

Pythonの標準ライブラリでデータベースを使ってみる

Pythonの標準ライブラリでデータベースを使ってみる

Pythonの標準ライブラリにSQLite3があるので使ってみる

SQLite3

こんな感じで。

import sqlite3
from contextlib import closing

# データベース
DBPATH = './database.db'

# ユーザ情報
ID = 10000
NAME = 'Rimuru Tempest'

# データベース接続
with closing(sqlite3.connect(DBPATH)) as connection:
    # カーソル生成
    c = connection.cursor()

    # executeメソッドでSQL文を実行する
    create_table = '''create table if not exists users (id INTEGER PRIMARY KEY, name TEXT)'''
    c.execute(create_table)

    # idの検索
    sql = 'select * from users where id = ?'
    id = (ID,)  # tupleで渡す
    try:
        c.execute(sql, id)
    except sqlite3.Error as e:
        print('sqlite3.Error occurred:', e.args[0])
        raise

    # データベースにIDが存在しない場合はユーザ情報を登録
    if not c.fetchone():
        sql = 'insert into users (ID, NAME) values (?,?)'
        user = (ID, NAME)  # tupleで渡す
        try:
            c.execute(sql, user)
        except sqlite3.Error as e:
            print('sqlite3.Error occurred:', e.args[0])

    # 結果をコミット
    connection.commit()

実行結果の確認

DB Browser for SQLiteがデータベースの中身を確認する時に便利です sqlitebrowser.org

実行結果

f:id:heinekun:20190717014505p:plain
実行結果の確認