Django 最初のプロジェクトを作成
この章では、Django 管理ツールと、Django を使用してプロジェクトを作成する方法を紹介します。最初のプロジェクトは HelloWorld と名付けます。
テストバージョンの説明:
-
Python 3.9.7
-
Django 4.2.7
以下のコマンドでバージョン番号を確認できます:
# python3 -V Python 3.9.7 # python3 -m django --version 4.2.7
Django 管理ツール
Django をインストールした後、利用可能な管理ツールがすでにあるはずですdjango-admin、Windowsで環境変数を設定していない場合は、次を使用できますdjango-admin。
django-admin のコマンド紹介を見てみましょう:
$ django-admin
Type 'django-admin help <subcommand>' for help on a specific subcommand.
Available subcommands:
[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
runserver
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
……省略部分……
最初のプロジェクトを作成
django-admin を使用して HelloWorld プロジェクトを作成します:
django-admin startproject HelloWorld
作成が完了したら、プロジェクトのディレクトリ構造を確認できます:
$ cd HelloWorld/
$ tree
HelloWorld/ # 项目根目录
├── manage.py # 项目管理脚本
├── db.sqlite3 # SQLite 数据库文件
├── __pycache__/ # Python 字节码缓存
└── HelloWorld/ # 项目配置目录(与项目同名)
├── __init__.py # 包标识文件
├── settings.py # 项目设置
├── urls.py # 主路由配置
├── asgi.py # ASGI 配置
└── wsgi.py # WSGI 配置
プロジェクトルートディレクトリ (HelloWorld/):
| ファイル/ディレクトリ | 役割 |
|---|---|
manage.py | Django コマンドラインツールのエントリポイントであり、開発サーバーの起動やデータベースの移行などの操作に使用します。 |
db.sqlite3 | SQLite データベースファイル(デフォルトデータベース、開発環境で使用)。 |
__pycache__/ | Python バイトコードキャッシュディレクトリ(自動生成され、手動で変更する必要はありません)。 |
メインプロジェクト設定ディレクトリ (HelloWorld/HelloWorld/):
| ファイル/ディレクトリ | 役割 |
|---|---|
__init__.py | 空のファイルで、Python にこのディレクトリがパッケージであることを伝えます。 |
settings.py | コア設定ファイル、以下を含みます: - データベース設定 ( DATABASES)- 静的ファイルパス ( STATIC_URL)- アプリケーション登録 ( INSTALLED_APPS)- デバッグモード ( DEBUG=True/False) |
urls.py | メインルーティング設定ファイル、URLパスとビューのマッピング関係を定義します。 |
asgi.py | ASGI サーバー設定(Daphne などの非同期 Web サーバー用)。 |
wsgi.py | WSGI サーバー設定(Gunicorn、uWSGI などの従来の Web サーバー用)。 |
次に、HelloWorld ディレクトリに入り、以下のコマンドを入力してサーバーを起動します:
python3 manage.py runserver 0.0.0.0:8000
0.0.0.0 は他のコンピューターが開発サーバーに接続できるようにします。8000 はポート番号です。指定しない場合、ポート番号はデフォルトで 8000 になります。
ブラウザにサーバーの IP を入力します(ここではローカル IP アドレスを入力します:127.0.0.1:8000)とポート番号を入力します。正常に起動した場合、出力結果は次のようになります:

重要なファイルの詳細
1. settings.py(コア設定)
例
# セキュリティ警告:本番環境では DEBUG をオフにする必要があります!
DEBUG = True
# アクセスを許可するドメイン名(DEBUG=False の場合は設定が必要)
ALLOWED_HOSTS = []
# 登録された Django アプリ
INSTALLED_APPS = [
'django.contrib.admin', # 管理バックエンド
'django.contrib.auth', # 認証システム
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles', # 静的ファイル処理
]
# データベース設定(デフォルトは SQLite)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3', # データベースファイルのパス
}
}
# 静的ファイル URL(CSS/JS/画像)
STATIC_URL = 'static/'
2. urls.py(ルーティング設定)
例
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls), # バックエンド管理ルート
# ここにカスタムルートを追加できます。例:
# path('blog/', include('blog.urls')),
]
3. manage.py(プロジェクト管理スクリプト)
例
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "HelloWorld.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
ビューとURL設定
先ほど作成した HelloWorld ディレクトリ内の HelloWorld ディレクトリに views.py ファイルを新規作成し、コードを入力します:
HelloWorld/HelloWorld/views.py ファイルコード:
次に、URL とビュー関数をバインドします。urls.py ファイルを開き、元のコードを削除して、以下のコードを urls.py ファイルにコピー&ペーストします:
HelloWorld/HelloWorld/urls.py ファイルコード:
ディレクトリ構造全体は次のようになります:
$ tree . |-- HelloWorld | |-- __init__.py | |-- __init__.pyc | |-- settings.py | |-- settings.pyc | |-- urls.py # url 配置 | |-- urls.pyc | |-- views.py # 添加的视图文件 | |-- views.pyc # 编译后的视图文件 | |-- wsgi.py | `-- wsgi.pyc `-- manage.py
完了したら、Django 開発サーバーを起動し、ブラウザでアクセスします:
以下のルールを変更することもできます:
HelloWorld/HelloWorld/urls.py ファイルコード:
ブラウザで開きますhttp://127.0.0.1:8000/hello、出力結果は次のようになります:

注意:プロジェクト内でコードに変更があった場合、サーバーは自動的にコードの変更を監視して自動的に再読み込みするため、すでにサーバーを起動している場合は手動で再起動する必要はありません。
path() 関数
Django の path() は 4 つのパラメータを受け取ることができます。2 つの必須パラメータ(route、view)と 2 つのオプションパラメータ(kwargs、name)です。
構文形式:path(route, view, kwargs=None, name=None)
route:文字列で、URL のパス部分を定義します。変数を含めることができます。例:
<int:my_variable>、URL からパラメータをキャプチャしてビュー関数に渡すことができます。view:ビュー関数で、指定されたルートに一致するリクエストを処理します。関数またはクラスベースビューを使用できます。
kwargs(オプション):ビュー関数に渡す追加のキーワード引数を含む辞書です。
name(オプション):URL ルートに一意の名前を指定して、コードの他の場所で参照できるようにします。これは、テンプレートで URL を生成したり、コード内でリダイレクトなどの操作を行う場合に非常に便利です。
Django 2.0 では re_path() メソッドを使用して 1.x バージョンのurl()メソッドと互換性を持たせることができます。一部の正規表現ルールも re_path() を使用して実装できます。
from django.urls import include, re_path
urlpatterns = [
re_path(r'^index/$', views.index, name='index'),
re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
re_path(r'^weblog/', include('blog.urls')),
...
]その他の拡張