見出し画像

The Complete Python Pro Bootcamp 2023: Day 63/100

  1. 100日間のコーディングチャレンジ63日目では、FlaskとSQLAlchemyを使用してデジタルな本棚を作成する課題に取り組む。

  2. プロジェクトの設定から始め、Flaskアプリケーションに新しい本を追加、表示、編集、削除する機能を実装。

  3. データの永続化、SQLiteデータベースの作成・操作、およびSQLAlchemyの導入とCRUD操作に焦点を当てる。

100日間コード講座63日目: 2023年完全版 Python Pro Bootcamp の63日目は、仮想本棚を作るというエキサイティングなチャレンジです。この課題はLibraryThingのようなサービスに触発されたもので、本好きのための包括的な機能で有名なプラットフォームです。目標は、SQLAlchemy を使って SQLite データベースと統合した Flask Web アプリケーションを構築し、デジタルコレクションから本を追加、閲覧、編集、削除する機能を提供することです。

インスピレーション LibraryThing

コーディングに入る前に、LibraryThingが提供しているものを評価しましょう。LibraryThingは、ユーザーが自分の蔵書を追跡・管理できる、堅牢なカタログサービスです。読書進捗の追跡、アイテムのレビュー、さらには本好きのコミュニティへの参加といった機能を提供しています。単なる目録ツールではなく、300万人近い本好きのための活気あるハブなのです。

プロジェクトの開始

このプロジェクトは、PyCharmを使ってPython環境をセットアップすることから始まります。ステップに従って

  1. ダウンロードと解凍: スタータープロジェクトをダウンロードし、解凍します。

  2. PyCharm で開く: PyCharmでプロジェクトを起動し、プロンプトが表示されたら仮想環境を設定します。

  3. トラブルシューティング: PyCharm がプロンプトを表示しない場合、手動で仮想環境を作成し、すべてのプロジェクトパッケージがインストールされていることを確認します。

  4. パッケージのインストール: PyCharm の Terminal を使って必要なパッケージをインストールします。

  5. プロジェクトの探索: プロジェクトの構造、特に HTML テンプレートに慣れてください。

ウェブサイトを機能的に作る

課題1: ホームページのレイアウト

ホームページ(`'/'`)は「私の図書館」を表示し、新しい本を追加するためのリンクを含みます。私たちのデジタルライブラリーへの入り口です。

課題2:本の追加ページ

add`ルートは、ユーザーが本の詳細を入力できるフォームにつながります。このデータは処理され、`all_books`リストに保存されます。

課題 3: フォーム機能

add`ページのフォームは単に見せるためだけのものではありません。本の詳細を取得し、`all_books`という辞書のリストに保存します。

課題4:本の表示

all_books`にあるすべての本は、ホームページ上で順番なしリストの項目として表示されます。

課題5: 空のライブラリの処理

空のライブラリは "ライブラリは空です "というメッセージを表示します。Add New Book "リンクは完全に機能し、ユーザを `/add` ページにリダイレクトします。

データの永続性を理解する

重要な点は、データを永続化する方法を学ぶことです。サーバーが更新されたときに、データが消えてしまってはいけません。これはデータベース、特に SQLite の概念と、データを効率的に管理するための SQLAlchemy の使用につながります。

SQLite データベースの作成と操作

SQLite データベースをセットアップすることから始めます:

import sqlite3
db = sqlite3.connect("new-books-collection.db")

次に、ブックのテーブルを作成します:

cursor = db.cursor()
cursor.execute("CREATE TABLE books (id INTEGER PRIMARY KEY, title varchar(250) NOT NULL UNIQUE, author varchar(250) NOT NULL, rating FLOAT NOT NULL)")

ブックの追加は次のように簡単です:

cursor.execute("INSERT INTO books VALUES(1, 'Harry Potter', 'J.K. Rowling', '9.3')")
db.commit()

SQLAlchemy の紹介

SQLAlchemy は直接 SQL コマンドの複雑さを抽象化します。SQLAlchemy は、SQL の直接コマンドの複雑さを抽象化し、その代わりに Python のオブジェク トを使って、データベースとのやりとりをより直感的なものにします。

SQLAlchemy のセットアップ

  1. パッケージのインストール: flask` と `flask_sqlalchemy` をインストールします。

  2. インポートと設定: Flask` と `SQLAlchemy` をインポートして、データベースの URI で Flask アプリケーションをセットアップします。

SQLAlchemy を使った CRUD 操作

  1. Create: Book` モデルに新しいレコードを追加します。

  2. Read: データベースからすべてのレコードまたは特定のレコードを取得します。

  3. 更新: ブックの詳細を変更し、変更を保存します。

  4. 削除: データベースからブックエントリを削除します。

課題と解決方法

データベースによる Flask ウェブサイトの構築

  1. 新しい本の追加: add`ルートを通して、ユーザはホームページ上に表示される本を追加することができます。

  2. 本の表示: ホームページにはデータベース内のすべての本が表示されます。

  3. 評価の編集機能: 各書籍リストには、その評価を編集するオプションが含まれています。

  4. 本の削除機能: 本をデータベースから削除することができます。

主なリソース

  • Flask の URL 構築ドキュメントと Stack Overflow のディスカッションは、URL パラメータの扱いや機能の実装に関するガイダンスを提供します。

最後の仕上げ: 解決策と完成したプロジェクト

これらの課題に対する解決策はこの要約では詳しく説明しませんが、動的な Web アプリケーションの作成における Flask と SQLAlchemy の適用を実証しています。

「超勇敢なウサギ」へ

この記事が気に入ったらサポートをしてみませんか?