Djangoの中身がわからない自分へ
##djangoのdocker導入参考url
https://engineer-ninaritai.com/docker-django/
#プロジェクト作成
docker run -v "$PWD":/code djangotest django-admin startproject mysite .
"$PWD"でカレントディレクトリを指定
#起動
docker run -v "$PWD":/code -d -p 8000:8000 djangotest python manage.py runserver 0.0.0.0:8000
docker run --rm -v "$PWD":/code -p 8000:8000 djangotest python manage.py runserver 0.0.0.0:8000
オプション
-d デタッチモードでdockerコンテナを起動する
デタッチモードとは?
コンテナ内に入らず、バックグラウンドで動作させることができる
-rm コンテナ内でのコマンドの実行が終わったらコンテナを自動で削除する
docker環境でのサーバ起動呪文
docker run --rm -v "$PWD":/code/ -p 8000:8000 my-django-app python manage.py runserver 0.0.0.0:8000
sercret key対策
そのままgithubにpushするとgitguardianメールが来る、
https://de-milestones.com/django-secret-key-unpublish/
始め方
startproject コマンドでプロジェクトを作成
コマンド記入
startapp コマンドで必要なアプリを作成(アプリは複数作成可)
コマンド記入
フレームワークの中身の流れ
- ユーザーがURIでリクエストを送る
- my_django/urls.pyのurlpatternsを参照してどこに飛ばすか決める。
aopの中身について
migrations.py
データベースの設定に関連したフォルダ。
あまり触る必要はなし。
admin.py
管理画面に関する設定ファイル。
app.py
djangoのアプリケーション自体の設定ができるファイル
models.py
データベース操作のためのファイル。SQLを使わずクラスを使ってデータベースを管理できるようになるファイル
test.py
テストをするためのファイル。今は使わない。
views.py
実際の処理を書くファイル
app作成後手順
- setting.pyファイルのINSTALLED_APPSのリストに
アプリ名.app.アプリ名(最初大文字)configという文字列を追加 - urls.pyにimport includeを追加、path関数
djangoの処理の流れ
- リクエストオブジェクトが作成される
- url.pyを参照してパスに一致した処理を探す
- その処理をrezuestオブジェクトを引数にして関数を呼び出す
- 呼び出した関数で処理されたあとはhttpresponseオブジェクトを受け取る
- 最後にhttpresponseオブジェクトをブラウザに返して描画されてユーザーに見れる