Djangoプロジェクトの構造
Djangoプロジェクトは、プロジェクトという大枠があり、その中にアプリケーションがあるという構造です。
プロジェクトは自分が作成したWebサイトを例えると、Appはブログ、Wiki、フォームなどがあります。
以下はmysiteというDjangoプロジェクトを作成し、そのなかにblogというAppを作成してみます。
プロジェクトの作成
以下のコマンドを実行します。
django-admin startproject mysite
生成されたプロジェクト構造を見てみましょう。
mysite/
manage.py
mysite/
__init__.py
asgi.py
wsgi.py
settings.py
urls.py
- manage.py
- プロジェクトを操作するためのコマンドラインユーティリティです。編集する必要がありません。
- mysite/
- プロジェクトディレクトリ
- __init__.py
- mysiteディレクトリをPythonモジュールとして扱うように指定する空ファイル
- asgi.py
- ASGI(Asynchronous Server Gateway Interface) 非同期のWebサーバーとアプリケーションとして実行するための設定です。
- wsgi.py
- WSGI(Web Server Gateway Interface)アプリケーションとして実行するための設定です。
- settings.py
- プロジェクトの設定です。デフォルトでは、SQLite3データベースを使用するという基本的な設定と、一般的なDjangoアプリケーションが使用するINSTALLED_APPSのリストが含まれています。
- urls.py
- URLパターンの定義
続いてデータベースマイグレーションを行います。これで初期アプリケーション用のテーブルをデータベースに作成します。
cd mysite
python manage.py migrate
Djangoには軽量なWebサーバが付属していて、コードを素早く実行することができます。
python manage.py runserver
http://127.0.0.1:8000/ をブラウザで開き、プロジェクトが正常に実行されているページを確認できます。
実行コマンドで、カスタムなホストやポートの指定や、特定の設定ファイルを読み込ませることが可能です。
python manage.py runserver 127.0.0.1:8001 \--settings=mysite.settings
Djangoの開発サーバを実行すると、コードの変更をチェックし続けます。リロードは自動的に行われます。
アプリケーションの作成
以下のコマンドを実行します。
python manage.py startapp blog
アプリケーションの構造が生成されます。
blog/
migrations/
__init__.py
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
- migrations/
- アプリケーションのデータベースマイグレーション
- admin.py
- Django管理サイトにモデルを登録できます。管理サイトの利用はオプションです。
- apps.py
- アプリケーションの設定
- models.py
- アプリケーションのデータモデル
- tests.py
- アプリケーションのテスト
- views.py
- アプリケーションのロジックで、各ビューはHTTPリクエストを受け取り、それを処理してレスポンスを返します。
以上でWebサービスの枠を作ってみました。