FastAPIをおしえるの会 リポジトリ

起動方法

  1. (初回のみ)pip install -r requirements.txtでpythonに必要なライブラリをダウンロード
  2. uvicorn main:app --host 127.0.0.1 --reloadで起動
  3. http://localhost:8000にアクセス

やること

  • 起動後にSNSでログインができるのを確認してもらう
  • その処理がバックエンドでどう動いてるかソースを見てもらう
  • 投稿機能のエンドポイントがごっそりないのでその記述を追加してもらう
    • routers.pyにGETの関数を書いてもらう
    • cruds.pyにDBからContentを全部持ってきて返す関数を定義してもらう
    • routers.pycruds.pyで作った関数を呼んで返り値を返してもらう
    • routers.pyにPOSTの関数を書いてもらう
    • cruds.pyに引数から投稿データを作成し出来たデータを返す関数を定義してもらう
    • routers.pycruds.pyで作った関数を呼んで返り値を返してもらう
    • schemas.pyはややこしくなりそうなので全部書いとく
  • docsで適宜試しつつ,完成したらhome.html(フロント)でも動いてるか見てもらう
  • 動いたら完成!!やった!嬉しい!
  • 鳩屋敷に余裕があれば,エンドポイントの参照先を書き換えると皆で書き込みできるバックエンドにつながって,皆でSNSして遊んで終わりってやりたい.

ファイル構成

fastapi_tutorial/
  │
  │ # HTMLファイルがおいてある.中身はまじまじと見ないで…frontend/
  │   │
  │   │ # サインアップ,サインインのリンクとバックエンドのdocsのリンクがあるページ
  │   ├ index.html
  │   │
  │   │ # サインアップのフォームのページ
  │   ├ signup.html
  │   │
  │   │ # サインインのフォームのページ
  │   ├ signin.html
  │   │
  │   │ # SNSのホーム画面
  │   └ home.html
  │
  │ # FastAPIのメインのファイル.起動コマンドのmainはこのファイル名を指しているmain.py
  │
  │ # DBとの接続や,テーブルの定義などが書かれているファイル.db.py
  │
  │ # エンドポイントの処理を定義しているファイル.routers.py
  │
  │ # DB操作を行う関数の定義がされているファイル.cruds.py
  │
  │ # FastAPIで扱うデータの型を定義しているファイル.schemas.py
  │ 
  │ # その他細々とした関数が定義されているファイル.utils.py
  │
  │ # このコードを動かすのに必要なpythonのライブラリを書き連ねたファイルrequirements.txt
  │
  │ # DB本体.当然ファイルを消したらDBがまるっと消える.db.sqlite3