ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
基本: runserver コマンド
# 仮想環境を有効化してから
(env) PS C:\dev\mysite> python manage.py runserver
# 出力例
# Watching for file changes with StatReloader
# Performing system checks...
# System check identified no issues (0 silenced).
# Django version 5.0.x, using settings 'config.settings'
# Starting development server at http://127.0.0.1:8000/
# Quit the server with CTRL-BREAK.
ブラウザで http://127.0.0.1:8000/ を開いて確認します。 停止は Ctrl + C(Windows では Ctrl + Break もあり)。
ポート・IP の指定
| コマンド | 説明 |
|---|---|
runserver | 127.0.0.1:8000 (デフォルト) |
runserver 8080 | ポート変更 (127.0.0.1:8080) |
runserver 0.0.0.0:8000 | 全ネットワークインタフェース |
runserver 192.168.1.10:8000 | 特定 IP のみ |
runserver [::]:8000 | IPv6 全インタフェース |
runserver --insecure | DEBUG=False でも static を配信(検証用) |
runserver --noreload | autoreload 無効化 |
runserver --nothreading | シングルスレッドモード |
外部からアクセスさせる
# settings.py
ALLOWED_HOSTS = [
'127.0.0.1',
'localhost',
'192.168.1.10', # LAN 内 IP
'mysite.local', # hosts に書いたホスト名
]
# DEBUG=True 時は ALLOWED_HOSTS が空でも localhost は通る
DEBUG = True# Windows ファイアウォール許可(管理者 PowerShell)
New-NetFirewallRule -DisplayName "Django Dev 8000" `
-Direction Inbound `
-LocalPort 8000 `
-Protocol TCP `
-Action Allow
# 起動
python manage.py runserver 0.0.0.0:8000
# 別端末から http://<PC の IP>:8000/ でアクセス
autoreload の仕組み
runserver はファイル変更を監視して自動で Python プロセスを再起動します。 開発中に .py を保存するだけで反映されるので便利です。
# 監視対象
# - すべての INSTALLED_APPS の .py
# - settings.py
# - urls.py
# - テンプレート (Django 1.7+ の TEMPLATES['OPTIONS']['debug'] = True 等で再描画)
# 監視されないもの
# - 静的ファイル (CSS / JS / 画像) → ブラウザリロードで対応
# - .env や conf 等の非 Python ファイル
# - マイグレーションは自動実行されない → python manage.py migrate 手動
# autoreload を切る
python manage.py runserver --noreload
# Watchman (高速ファイル監視) 利用(macOS/Linux)
pip install pywatchman
runserver の制限事項
Django 公式ドキュメントに明記されている通り、 runserver は本番に使ってはいけません。 理由:
- シングルスレッド(デフォルト): 同時接続でブロックされやすい
- 静的ファイル配信が遅い: 開発便宜のための実装
- セキュリティ未強化: HTTP リクエストの厳密検証なし
- HTTPS 非対応: TLS 終端なし
- WSGI 完全準拠ではない: 本番 WSGI サーバとの動作差異
- パフォーマンス低い: gunicorn の数十分の 1
本番用 WSGI サーバ
| サーバ | OS | 特徴 |
|---|---|---|
| gunicorn | Linux/macOS | 定番。 シンプル、 nginx 連携 |
| uWSGI | Linux/macOS | 高機能、 設定多い |
| Waitress | Windows / クロスプラットフォーム | ピュア Python、 Windows でも動く |
| uvicorn + Gunicorn | Linux | ASGI (非同期) 対応 |
| Hypercorn | Linux | ASGI、 HTTP/2 対応 |
Linux: gunicorn + nginx
# Linux サーバ上で
pip install gunicorn
# 起動
gunicorn config.wsgi:application \
--bind 0.0.0.0:8000 \
--workers 3 \
--access-logfile /var/log/django/access.log \
--error-logfile /var/log/django/error.log
# 通常は systemd + nginx で運用
# /etc/systemd/system/gunicorn.service
[Unit]
Description=Gunicorn for Django
After=network.target
[Service]
User=www-data
WorkingDirectory=/var/www/mysite
ExecStart=/var/www/mysite/env/bin/gunicorn config.wsgi:application --bind unix:/run/gunicorn.sock
[Install]
WantedBy=multi-user.target
Windows: Waitress
# Windows サーバ用
pip install waitress
# 起動
waitress-serve --port=8000 config.wsgi:application
# または Python から
# serve.py
from waitress import serve
from config.wsgi import application
serve(application, host='0.0.0.0', port=8000, threads=8)
# 実行
python serve.py
# IIS 経由なら HttpPlatformHandler でラップ可能
# Windows サービス化は NSSM (Non-Sucking Service Manager) が定番
静的ファイル配信
本番では Django ではなく nginx / Apache / IIS / CDN から配信します:
# settings.py
STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'staticfiles' # collectstatic の出力先
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'
# 本番デプロイ時
# python manage.py collectstatic --noinput
# → staticfiles/ に全 static を集約
# → nginx で /static/ → /var/www/mysite/staticfiles/ に alias
IPv6 対応
# IPv6 で listen
python manage.py runserver [::]:8000
# 特定 IPv6 アドレス
python manage.py runserver [::1]:8000
# settings.py の ALLOWED_HOSTS にも追加
ALLOWED_HOSTS = ['*'] # 開発時のみ。 本番は明示
よくあるエラー
| 症状 | 対処 |
|---|---|
Error: That port is already in use | ポート競合。 別ポート指定 or 占有プロセス停止 (netstat -ano | findstr :8000) |
DisallowedHost at / | ALLOWED_HOSTS に該当ホスト追加 |
CSRF verification failed | CSRF_TRUSTED_ORIGINS にオリジン追加 |
| 変更が反映されない | autoreload が監視外。 サーバ手動再起動 |
| 静的ファイル 404 | DEBUG=True 確認 / django.contrib.staticfiles 有効化 |
FAQ
Q: runserver で複数ワーカーを使いたい
A: 設計上不可能。 並列処理が必要なら gunicorn / Waitress に切替。
Q: HTTPS で動かしたい
A: runserver では非対応。 django-extensions の runserver_plus でセルフ署名証明書での HTTPS が可能。 本番は nginx 等で TLS 終端。
Q: Windows サービスとして runserver を動かせる?
A: 不可。 Waitress + NSSM で Windows サービス化するのが定番。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?