| この記事の要点 |
|
前提
Python と Django が入っていることが前提です。まだの場合は Python3 のインストール (Windows10) と インストール方法(Windows) を先に済ませてください。
python --version
Python 3.12.6
1. フォルダと仮想環境を作る
cd C:\work
mkdir mysite
cd mysite
python -m venv .venv
.venv\Scripts\activate
成功するとプロンプトの先頭に (.venv) が付きます。
(.venv) C:\work\mysite>
| シェル | 有効化コマンド |
|---|---|
| コマンドプロンプト | .venv\Scripts\activate.bat |
| PowerShell | .venv\Scripts\Activate.ps1 |
| Git Bash | source .venv/Scripts/activate |
PowerShell で このシステムではスクリプトの実行が無効になっているため と出た場合は、そのウィンドウだけ許可します。
Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned
2. Django を入れる
python -m pip install --upgrade pip
python -m pip install django
python -m django --version
5.1.1
pip ではなく python -m pip と書くと、いま有効な Python に確実に入ります。複数バージョンが入っている環境での取り違えを防げます。
3. プロジェクトを作る
django-admin startproject config .
末尾のドットが重要です。付けるかどうかで出来上がる階層が変わります。
| コマンド | できるもの |
|---|---|
django-admin startproject config . | いまのフォルダ直下に manage.py と config/ |
django-admin startproject config | config/manage.py と config/config/(同名が二重になる) |
ドットを付けた場合の構成です。
C:\work\mysite\
├─ .venv\
├─ manage.py ← すべての操作の入口
└─ config\
├─ __init__.py
├─ settings.py ← 設定
├─ urls.py ← ルーティング
├─ asgi.py
└─ wsgi.py
プロジェクト名を config にしておくと、後からサイト名を変えても import 文を書き換えずに済みます。mysite のようにサービス名を付ける流儀もありますが、アプリ名と紛れやすくなります。
使えない名前
- ハイフンを含む名前(
my-site)— Python の識別子として不正 - 数字で始まる名前(
2nd) - Python の予約語(
classimporttestなど) - 既存モジュールと同じ名前(
djangositejson)— import が衝突する
4. 初期化して起動する
python manage.py migrate
python manage.py runserver
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
ブラウザで http://127.0.0.1:8000/ を開き、ロケットのイラストと The install worked successfully! が出れば完了です。停止は Ctrl + C です。
migrate を実行すると db.sqlite3 が作られ、管理画面やセッションに必要なテーブルが用意されます。飛ばすと You have 18 unapplied migration(s) という警告が出ます。
5. 日本語向けの設定
# config/settings.py
LANGUAGE_CODE = "ja"
TIME_ZONE = "Asia/Tokyo"
USE_I18N = True
USE_TZ = True # DB には UTC で保存し、表示時に変換する
USE_TZ = True のまま運用するのが推奨です。datetime.now() ではなく django.utils.timezone.now() を使ってください。
6. 次にやること
python manage.py startapp myapp アプリを作る
python manage.py createsuperuser 管理者を作る
python -m pip freeze > requirements.txt 依存を固定する
プロジェクトは器で、実際の機能はアプリとして作ります。作成後は settings.py の INSTALLED_APPS への追加を忘れないでください(アプリケーションの作成方法)。
つまずいたとき
| 症状 | 対処 |
|---|---|
django-admin は認識されていません | 仮想環境が有効になっていない。python -m django startproject ... でも可 |
| スクリプトの実行が無効 | Set-ExecutionPolicy -Scope Process RemoteSigned |
Error: That port is already in use. | python manage.py runserver 8001 でポートを変える |
| 文字化けする | コマンドプロンプトで chcp 65001 を実行して UTF-8 にする |
| パスに日本語や空白がある | 不具合の原因になりやすい。C:\work のような英数字のパスに置く |
ModuleNotFoundError: No module named 'django' | 別の Python で実行している。python -c "import sys; print(sys.executable)" で確認 |
生成されたファイルの役割
| ファイル | 役割 | 編集頻度 |
|---|---|---|
manage.py | コマンドの入口(runserver migrate など) | 触らない |
config/settings.py | DB・アプリ一覧・テンプレート・静的ファイルの設定 | よく編集する |
config/urls.py | URL とビューの対応 | よく編集する |
config/wsgi.py | 本番で Web サーバーとつなぐ入口 | デプロイ時のみ |
config/asgi.py | 非同期・WebSocket 用の入口 | 必要になったら |
config/__init__.py | パッケージであることを示す空ファイル | 触らない |
settings.py で最初に見るところ
SECRET_KEY = "django-insecure-..." # 本番では環境変数から読む
DEBUG = True # 本番では必ず False
ALLOWED_HOSTS = [] # DEBUG=False にしたら必須
INSTALLED_APPS = [
"django.contrib.admin",
...
"myapp", # 作ったアプリはここに足す
]
DATABASES = {
"default": {
"ENGINE": "django.db.backends.sqlite3",
"NAME": BASE_DIR / "db.sqlite3",
}
}
STATIC_URL = "static/"
SECRET_KEY をリポジトリに入れないでください。セッションやパスワードリセットの署名に使われるため、漏れるとログインを偽装される可能性があります。
import os
SECRET_KEY = os.environ["DJANGO_SECRET_KEY"]
DEBUG = os.environ.get("DJANGO_DEBUG", "") == "1"
ALLOWED_HOSTS = os.environ.get("DJANGO_HOSTS", "127.0.0.1").split(",")
Git 管理に入れないもの
# .gitignore
.venv/
__pycache__/
*.pyc
db.sqlite3
.env
/media/
/staticfiles/
仮想環境のフォルダはサイズが大きく、OS ごとに中身が違うため共有しても意味がありません。共有するのは requirements.txt だけにします。詳細は git管理 を参照してください。
関連
- 環境構築とプロジェクト/アプリの作成 — 親カテゴリ
- インストール方法(Windows)
- プロジェクトの作成方法(Mac)
- アプリケーションの作成方法
- 開発用サーバー(Windows)
- 仮想環境の構築(WIndows)
子ページはありません
- インストール方法(Windows)
- インストール方法(Linux/Mac)
- プロジェクトの作成方法(Windows)
- プロジェクトの作成方法(Mac)
- アプリケーションの作成方法
- 開発用サーバー(Windows)
- 開発用サーバー(Mac)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- JP1/FTS(File Transmission Server/FTP)とは|伝送カードとftstranの使い方 NEW 2026-10-02 22:03:11
- 日立 JP1 (Job Management Partner 1) 完全ガイド (AJS3 / IM / Base / PFM) 2026-10-02 22:03:11
- JP1/Baseとは|ユーザー認証・ユーザーマッピング・イベントサービスの仕組みと主要コマンド NEW 2026-10-02 22:03:10
- JP1/IM(JP1/IM2・IM3)とは|JP1イベントによる統合監視の仕組みとJP1/Baseとの関係 NEW 2026-10-02 22:03:10
- JP1/AJS3 コマンド一覧|ajsentry・ajsshow・ajsrerunなど主要コマンドの使い方とオプション NEW 2026-10-02 22:03:09
- JP1/AJS3とは?ジョブネット・スケジュール・Manager/Agent/Viewの構成を初心者向けに解説 NEW 2026-10-02 22:03:09
- クラウドネットワークの記事一覧 2026-10-02 16:08:51
- ルーティングとスイッチング完全ガイド — 静的/動的ルーティング/RIP/OSPF/BGP/VLAN/STP 2026-10-02 16:08:51
- ネットワークのアドレッシング完全ガイド — IP/MAC/ポート/サブネット/CIDR/IPv6/NAT 2026-10-02 16:08:51
- 本番環境のdll内で参照しているdllファイルの置き場所 2026-10-02 16:08:50
- 【Visual Studio】 C#のForm自動生成時に「値が有効な範囲にありません」エラー 2026-10-02 16:08:50
- 【Laravelエラー】does not comply with psr-4 autoloading standard. Skipping. 2026-10-02 16:08:50
- 【Laravelエラー】could not find driver(Windows, MySQL編) 2026-10-02 16:08:49
- The following channel memory did not pass cpu memory test. 2026-10-02 16:08:49
- 【pycharm】connecting to console が終わらない 2026-10-02 16:08:49