「Pythonでデスクトップアプリを作ろう 後編」 その17
「Pythonでデスクトップアプリを作ろう 後編」 その17# -*- coding: utf-8 -*-"""Created on Sun Jun 25 12:34:18 2023@author: mlupi""""""『日経ソフトウエア』2022年11月号(p.046~p.065)の特集記事 9月号の「特集2 Pythonでデスクトップアプリを作ろう 前編」に引き続いて、 11月号の「特集3 Pythonでデスクトップアプリを作ろう 後編」に挑戦中。なお、基礎については、当ブログの「Pythonことはじめ」などを参照してください。"""# 「Pythonでデスクトップアプリを作ろう 後編」 その17# 標準の「Tkinter」+「SQLite3」を使って# Part3 「蔵書管理アプリ」を作る(p.058~p.065)# ③ データベースを作成する(p.061~p.062)#Python#Tkinter#SQLite3#日経ソフトウエア#デスクトップアプリ#データベース#Tkinter#Textウイジェット#_test.py#蔵書管理アプリ#Menuウイジェットのテストプログラム#create.db#テーブルの作成#cur.execute## 『日経ソフトウエア』2022年11月号(p.046~p.065)## 目次## Intro Python+Tkinter+SQLiteが一番手軽(p.046~p.047)## Part1 SQLite3の基本をマスターしよう(p.047~p.053)# ① データベースを作成する(p.047~p.048)# ② テーブルを作成する(p.048~p.049)# ③ 「INSERT INTO」文でデータを追加する(p.049~p.050)# ④ データベースやテーブルの削除(p.050)# ⑤ 「SELECT」文でデータを抽出する(p.050~p.051)# ⑥ 「LIKE」演算子であいまい検索を実現する(p.051~p.052)# ⑦ 「ORDER BY」句でデータをソートする(p.052~p.053)# Part2 カレンダー型「メモアプリ」を作る(p.053~p.058)# ① メモアプリのデータベースを作る(p.053p.054)# ② メモを入力・表示する機能(p.054~p.055)# ③ カレンダー型「メモアプリ」のプログラム(p.055~p.057)# ④ 「保存」ボタンがクリックされた時の処理(p.057)# ⑤ 「calender」モジュールを使う(p.057~p.058)# Part3 「蔵書管理アプリ」を作る(p.058~p.065)# ① 「Treeview」ウィジェットの使い方(p.059~p.060)# ② 「Menu」ウィジェットの使い方(p.060~p.061)# ③ データベースを作成する(p.061~p.062)# ④ 「蔵書管理アプリ」を完成させる(p.062~p.065)#========== リスト3●「create_db.py」は、ここから# 「collection.db」を作り、その中に「booksテーブル」を作成するプログラム# ライブラリのインポート(「SQLite3」モジュール)import sqlite3# データベースの作成# 「sqlite3.connect」関数でデータベースを作成する。# 他のDBMSには、データベースを作成する「CREATE DATABASE」という「SQL」文が存在するが、# 「SQLite3」にはないので注意が必要。conn = sqlite3.connect('collection.db')# カーソルオブジェクトの作成# カーソルオブジェクトでデータベースの操作を行う。cur = conn.cursor()# 「books」テーブルの作成cur.execute("""CREATE TABLE books( id INTEGER PRIMARY KEY AUTOINCREMENT, isbn TEXT, title TEXT NOT NULL, author TEXT, publisher TEXT, release TEXT, price INTEGER, image TEXT)""")# サンプルデータを2件だけ入力# SQL文の「?」の部分には、「execute」関数実行時に、タプル(date,memo)の# の要素(dateとmemo)が順に挿入される。# このようなやり方は、「パラメータ割り当て」と呼ばれる。# 「パラメータ割り当て」を使うと、文字列の連結処理を行わずに、変数の値をSQL文に# 挿入できる。books = [['0123-A1234', 'ビジネスPython超入門', \ '中島 省吾', '日経BP', '2019年6月10日', 2640, 'img_001.png',], ['B07HMN6BL9', '5日間で学ぶPython AIプログラミング編', \ '中島 省吾', '日経BP', '2019年9月25日', 880, 'img_002.png',]]sql= """INSERT INTO books(isbn, title, author, publisher, release,price, image) VALUES (?, ?, ?, ?, ?, ?, ?)""" for i in range(len(books)): cur.execute(sql, books[i]) conn.commit()for row in cur.execute("SELECT * FROM books"): print(row) conn.close#========== リスト3●「create_db.py」は、ここまでリスト3●「create_db.py」の実行結果