#ここに記述するのはVisualStudioCodeのチュートリアル(英文)を引用した内容である。
Django の用語では、「Django プロジェクト」は、いくつかのサイトレベルの設定ファイルと、Web ホストにデプロイして完全な Web アプリケーションを作成する 1 つ以上の「アプリ」で構成されます。Django プロジェクトは複数のアプリを含むことができ、それぞれのアプリは通常、プロジェクト内で独立した機能を持ち、同じアプリが複数の Django プロジェクトに含まれることもあります。アプリはその一部で、Django が期待する特定の規約に従った Python パッケージに過ぎません。
最小限の Django アプリを作るには、まずアプリのコンテナとなる Django プロジェク トを作り、次にアプリ自体を作る必要があります。この二つの目的のために、 Django パッケージをインストールしたときにインストールされる Django 管理ユーティリティ、 django-admin を使用します。
1_ 仮想環境が起動しているVS Code Terminalで、以下のコマンドを実行します。
$ django-admin startproject web_project .
この startproject コマンドは、カレントフォルダがプロジェクトフォルダであると仮定し(最後に .を使用)、その中に以下のものを作成します。
manage.py を作成します。
プロジェクト用の Django コマンドライン管理ユーティリティです。python manage.py <command> [options] を使って、プロジェクトの管理コマンドを実行します。
web_project という名前のサブフォルダで、以下のファイルを含んでいます。
__init__.py:
Python にこのフォルダが Python パッケージであることを伝える空のファイルです。
asgi.py:
プロジェクトにサービスを提供するASGI互換のWebサーバーのためのエントリポイントです。通常、このファイルはそのままにして、本番用Webサーバーのフックを提供します。
settings.py:
Django プロジェクトの設定が含まれており、Web アプリを開発する過程で変更します。
urls.py:
Django プロジェクトの目次を含んでおり、これも開発の過程で修正します。
wsgi.py:
WSGI 互換の Web サーバがあなたのプロジェクトにサービスを提供するためのエントリーポイントです。通常、このファイルはそのままにしておくと、本番用 Web サーバのフックを提供します。
2_ 空の開発用データベースを作成します。
$ python manage.py migrate
サーバーを初めて起動すると、デフォルトの SQLite データベースが db.sqlite3 というファイルに作成されます。このデータベースは開発用ですが、少量のウェブアプリケーションであれば実運用でも使用することができます。
3_ Django プロジェクトを確認するために、仮想環境が有効になっていることを確認したのち
$ python manage.py runserver
上記のコマンドを使用して Django の開発サーバを起動します。サーバはデフォルトのポート 8000 で実行され、ターミナルウィンドウに以下のような出力が表示されます。
>>
Performing system checks...
System check identified no issues (0 silenced).
January 15, 2021 - 14:33:31
Django version 3.1.5, using settings 'web_project.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with
CONTROL-C.
>>
Django の組み込み Web サーバは、ローカルでの開発のみを目的としています。しかし、Web ホストにデプロイする場合、Django は代わりにホストの Web サーバを使用します。Django プロジェクトの wsgi.py と asgi.py モジュールが、実運用サーバへのフックを担当し ます。
もしデフォルトの 8000 以外のポートを使いたい場合は、コマンドラインで python manage.py runserver 5000 のようにポート番号を指定してください。
3_ ターミナルの出力ウィンドウにある http://127.0.0.1:8000/ の URL を Ctrl+ クリックして、そのアドレスにデフォルトのブラウザを開いてください。Django が正しくインストールされ、プロジェクトが有効であれば、デフォルトのページが表示されます。VS Code の端末出力ウィンドウには、サーバログも表示されます。
終了したら、ブラウザーのウィンドウを閉じ、ターミナルの出力ウィンドウに表示されているように、VS CodeでCtrl+Cを使用してサーバーを停止します。
4_ 仮想環境を有効にしたVS Code Terminalで、管理ユーティリティのstartappコマンドをプロジェクトフォルダ(manage.pyが存在する場所)で実行します。
$ python manage.py startapp <フォルダ(アプリ)名>
このコマンドは、いくつかのコードファイルと1つのサブフォルダを含む <フォルダ名> というフォルダを作成します。
これらのうち、views.py(Webアプリのページを定義する関数を含む)とmodels.py(データオブジェクトを定義するクラスを含む)はよく使うものです。
migrations フォルダは、このチュートリアルで後述するように、Django の管理ユーティリティがデータベースのバージョンを管理するために使用します。
また、 apps.py (アプリの設定)、 admin.py (管理インターフェイスの作成)、 tests.py (テストの作成) というファイルもありますが、ここでは取り上げません。
5_
<フォルダ名>/views.py を以下のコードに合うように修正し、アプリのホームページ用の単一ビューを作成します。
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello, Django!")
以下の内容で <フォルダ(アプリ)名>/urls.py というファイルを作成します。urls.py ファイルは、異なる URL を適切なビューにルーティングするためのパターンを指定する場所です。以下のコードでは、アプリのルート URL ("") を、先ほど <フォルダ(アプリ)名>/views.py に追加した views.home 関数にマップするルートを1つ含んでいます。
from django.urls import path
from <フォルダ(アプリ)名> import views
urlpatterns = [
path("", views.home, name="home"),
]
6_ web_project フォルダは urls.py ファイルも含んでおり、URL ルーティングが実際に処理される場所です。web_project/urls.py を開いて、以下のコードに合うように修正します (お望みなら、指示するコメントを残しておいてもかまいません)。このコードは django.urls.include を使ってアプリの <フォルダ名>/urls.py を取り込み、アプリのルーティングをアプリの中に収 めています。この分離は、プロジェクトに複数のアプリが含まれている場合に便利です。
from django.contrib import admin
from django.urls import include, path
from django.urls import include
urlpatterns = [
path("", include("<フォルダ(アプリ)名>.urls")),
path('admin/', admin.site.urls)
]
7_ VS Code Terminal で、再び仮想環境を有効にして、 python manage.py runserver で開発サーバを起動し、ブラウザを http://127.0.0.1:8000/ に開くと、 "Hello, Django" をレンダリングするページが表示されます。