Flaskのデータベースのテーブルを自由自在に操作したいが、出来ずに困っている。

実現したいこと

初めて3か月程度の学習中の者です。
flaskによってサイトを作成するためにデータベースを整理しています。
多くのサイトで見るように、テーブルをmodelというディレクトリの配下でmodel.pyとして定義したいですが、現状のコードではうまくいきません。よって実現したいことは、

・model.pyに正しくデータベースを定義したい。
・そのmodel.pyをapp.pyにインポートしたい。
・方法はいろいろあると思いますが、テーブルの操作を自由自在に行う方法を知りたい。

前提

ここに質問の内容を詳しく書いてください。
(例)
TypeScriptで●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。

質問したい内容は、上記の3つを達成しようとした際に生じた問題の解決策を質問したいです。
具体的な問題として、以下の二つがあります。

・テーブル変更を行いマイグレーションを実行しても、データベース内のテーブルは変化していない。
具体的には

backend/app.py

の階層で

python >>>import app from app,db >>>with app.app_context(): >>> db.create_all()

・テーブルに対してCRUD操作を行いたいが、現状はコマンドからReadしかできない。
具体的には、

backend/instance/admin.db

の階層でターミナルから

sqlite3 admin.db (sqlite3).table (sqlite3).schema

発生している問題・エラーメッセージ

先ほどの2つのコードに対してエラーは出ていません。

試したこと

・app.pyにmodel.pyのテーブルを全て書いてマイグレーションしたがやはり変更されなかった。
・backend/instanceからadmin.dbに対してSQLコマンドでCRUD操作を行うことは出来た。
http://blog.e-riverstyle.com/2010/05/sqlite.html参考に

だが、基本的にはCRUD操作をコマンドではなくpyhtonコードで行いたいので、やはり問題は解決していない。

・phpmyadminにadmin.dbをインポートしてCRUD操作は成功した。

だが、中心的に操作したいのはflaskのmodel.pyの部分なので、データベースの管理ツールやコマンドベースのデータベース操作の成功では、今後のデータベース操作で苦労しそう。

補足情報(FW/ツールのバージョンなど)

githubに全体のソースコードを公開しているので、そのURLを載せます。
https://github.com/zero-penguin/original_site

関連のバージョン
python 3.11.3
Flask 2.2.3

コメントを投稿

0 コメント