aiomysql https://aiomysql.readthedocs.io/en/stable/connection.html
依存関係の解決用
requirements.txt みたいなやつ
最初の依存関係のインストール
poetry install
個別のライブラリのインストール、アンインストール
# dependenciesに追加
poetry add jinja2
# 本番環境以外の場合はgroup指定
poetry add --group (dev|test|linter) jinja2
# dependenciesから削除
poetry remove jinja2
詳しくはREADMEを確認
./run.sh createmmigration {description}
- コンテナの起動
docker-compose -f api/docker/docker-compose.yaml up
- fastapi の起動
npm run fastapi
で fastapi を起動可能です。
fastapi の swagger を確認するには、http://localhost/docs
にアクセスしてください。
api/
├ docker/ # docker系
├ docs/ # ドキュメント
├ (python_modules/) # ライブラリ格納場所
├ (.venv/) # 仮想環境ライブラリ格納場所
├ src/ # ソースコード全般
├ tests/ # テストコード
├ run.sh # 全体的なコマンドを確認するためのシェルスクリプト, ./run.shで内容確認
└ pyproject.toml # poetryの設定ファイル
api/
└ docker/
├ mysql/ # mysqlの永続用フォルダ、初期設定のファイルも含む
├ .env # docker-compose用の設定ファイル、プロジェクト名やポートの指定、.env.sampleのコピー
├ app.env # yamltoenvでの自動生成、appの環境変数
├ docker-compose.yaml # dockerの本体
└ Doeckerfile # appのdokcerファイル
api/
└ src/
├ assets/ # 画像データなど,static?
├ crud/ # CRUD操作に関する処理
├ database/ # DBの設定系
├ models/ # DBモデルの定義
├ routers/ # ルーティング後のエンドポイント
├ schemas/ # APIのI/O定義
├ services/ # CRUD以外の処理
├ dependencies.py # 依存性注入 認証とか
└ main.py # エンドポイントの設定
api/
└ tests/
├ integration/ # 総合テスト
├ unit/ # 単体テスト
├ conftest.py # テストの設定
└ dependencies.py # 依存性の上書き
api/
└ src/
└ database/
├ migrations/ # migrationのための設定ファイル
│ ├ versions/ # 生成されたmigrationファイルの置き場
│ ├ env.py # migrationファイル生成時の前処理等
│ ├ README.md # alembic系の設定など
│ └ script.py.mako # migrationファイル生成の雛形
├ alembic.ini # migrationのための設定ファイル
├ base_class.py # modelのBaseクラス定義
└ db.py # db接続の定義
下記を.vscode/settings.json
に追加することで自動で補完が行われるようになる
追跡済み
{
"python.autoComplete.extraPaths": [
"api/python_modules/local/lib/python3.10/site-packages"
],
"python.analysis.extraPaths": [
"api/python_modules/local/lib/python3.10/site-packages"
]
}