Django django-admin コマンド詳解
django-admin は Django フレームワークが提供するコマンドラインツールで、Django プロジェクトを管理するための中心的なツールです。
新規プロジェクトの作成、開発サーバーの起動、データベースマイグレーションの実行など、あらゆる場面で django-admin は欠かせないツールです。
django-admin が提供するすべてのコマンドを確認するには、次のコマンドを実行します:
django-admin help
出力内容は次のようになります:
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
optimizemigration
runserver
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
よく使う django-admin コマンド詳解
1. 新規プロジェクトの作成
django-admin startproject 项目名称
このコマンドは、現在のディレクトリに新しい Django プロジェクトを作成します。基本的なプロジェクト構造は次のとおりです:
manage.py:プロジェクト管理スクリプトプロジェクト名/:プロジェクトのメインディレクトリ__init__.pysettings.py:プロジェクト設定ファイルurls.py:URL ルーティング設定wsgi.py:WSGI アプリケーションのエントリポイント
2. 新規アプリの作成
通常は使用しますがmanage.pyアプリを作成する際は、django-admin を使用することもできます:
django-admin startapp 应用名称
これにより、新しい Django アプリが作成されます。内容は次のとおりです:
migrations/:データベースマイグレーションファイルのディレクトリ__init__.pyadmin.py:管理バックエンドの設定apps.py:アプリの設定models.py:データモデルの定義tests.py:テストコードviews.py:ビュー関数
3. プロジェクト設定の確認
django-admin check
このコマンドは、Django プロジェクトに設定エラーがないかをチェックします。チェック内容は次のとおりです:
- モデル定義が正しいか
- URL 設定が有効か
- テンプレート設定が正しいか
- 静的ファイルの設定など
4. データベースマイグレーション
Django はマイグレーションシステムを使用して、データベーススキーマの変更を管理します:
django-admin makemigrations # 创建迁移文件 django-admin migrate # 应用迁移到数据库
5. スーパーユーザーの作成
django-admin createsuperuser
このコマンドは、Django 管理バックエンドにアクセスできるスーパーユーザーを作成する手順を案内します。
django-admin のよく使うコマンド
| コマンド | 機能 | 例 |
|---|---|---|
startproject | 新しい Django プロジェクトを作成する | django-admin startproject myproject |
startapp | 新しい Django アプリを作成する | django-admin startapp myapp |
runserver | 開発サーバーを起動する | python manage.py runserver |
makemigrations | データベースマイグレーションファイルを生成する | python manage.py makemigrations |
migrate | データベースマイグレーションを実行する | python manage.py migrate |
createsuperuser | 管理者アカウントを作成する | python manage.py createsuperuser |
shell | Django 対話型シェルを起動する | python manage.py shell |
collectstatic | 静的ファイルを収集する(本番環境用) | python manage.py collectstatic |
test | ユニットテストを実行する | python manage.py test |
django-admin startproject(プロジェクトの作成)
基本構文:
django-admin startproject <项目名称> [目标目录]
パラメータの説明:
| パラメータ | 機能 | 例 |
|---|---|---|
<プロジェクト名> | 必須、プロジェクト名(同じ名前のディレクトリが生成されます) | django-admin startproject mysite |
[ターゲットディレクトリ] | 任意、プロジェクトの格納先ディレクトリを指定 | django-admin startproject mysite /opt/myproject |
--template | カスタムプロジェクトテンプレートを使用 | django-admin startproject --template=my_template.zip mysite |
--extension | ファイル拡張子を指定(例:.py, .txt) | django-admin startproject --extension=py,txt mysite |
--name | ファイル名のパターンを指定(例:Dockerfile, README.md) | django-admin startproject --name=Dockerfile mysite |
例
django-admin startproject mysite # デフォルトのプロジェクトを作成
django-admin startproject mysite /opt/code # ディレクトリを指定
django-admin startproject --template=https://example.com/my_template.zip mysite # リモートテンプレートを使用
django-admin startproject mysite /opt/code # ディレクトリを指定
django-admin startproject --template=https://example.com/my_template.zip mysite # リモートテンプレートを使用
django-admin startapp(アプリの作成)
基本構文:
django-admin startapp <应用名称> [目标目录]
パラメータの説明:
| パラメータ | 機能 | 例 |
|---|---|---|
<アプリケーション名> | 必須、アプリ名(生成されますmodels.py, views.pyなど) | django-admin startapp blog |
[ターゲットディレクトリ] | 任意、アプリの格納先ディレクトリを指定 | django-admin startapp blog /opt/myapp |
--template | カスタムアプリテンプレートを使用 | django-admin startapp --template=my_app_template.zip blog |
例
django-admin startapp blog # デフォルトのアプリを作成
django-admin startapp blog /opt/myapp # ディレクトリを指定
django-admin startapp --template=my_template.zip blog # テンプレートを使用
django-admin startapp blog /opt/myapp # ディレクトリを指定
django-admin startapp --template=my_template.zip blog # テンプレートを使用
django-admin runserver(開発サーバーの起動)
基本構文:
python manage.py runserver [IP:端口]
パラメータの説明:
| パラメータ | 機能 | 例 |
|---|---|---|
[IP:端口] | 任意、リッスンする IP とポートを指定(デフォルト127.0.0.1:8000) | python manage.py runserver 0.0.0.0:8080 |
--noreload | 自動リロードを無効にする(デバッグ時に使用) | python manage.py runserver --noreload |
--insecure | 静的ファイルサービスを強制する(DEBUG モード以外) | python manage.py runserver --insecure |
例
python manage.py runserver # デフォルトで起動(127.0.0.1:8000)
python manage.py runserver 0.0.0.0:8000 # 外部からのアクセスを許可
python manage.py runserver 8080 # ポートのみ変更
python manage.py runserver 0.0.0.0:8000 # 外部からのアクセスを許可
python manage.py runserver 8080 # ポートのみ変更
django-admin migrate(データベースマイグレーション)
基本構文:
python manage.py migrate [应用名] [迁移版本]
パラメータの説明:
| パラメータ | 機能 | 例 |
|---|---|---|
[アプリケーション名] | 任意、マイグレーションするアプリを指定 | python manage.py migrate blog |
[移行バージョン] | 任意、マイグレーションバージョン番号を指定 | python manage.py migrate blog 0002 |
--fake | マイグレーションを実行済みとしてマーク(データベースは実際には変更しない) | python manage.py migrate --fake |
--fake-initial | テーブルが既に存在する場合のみ実行済みとしてマーク | python manage.py migrate --fake-initial |
例
python manage.py migrate # 未適用のマイグレーションをすべて実行
python manage.py migrate blog # blog アプリのみマイグレーション
python manage.py migrate blog 0002 # 特定のバージョンにマイグレーション
python manage.py migrate blog # blog アプリのみマイグレーション
python manage.py migrate blog 0002 # 特定のバージョンにマイグレーション
その他のよく使うコマンド
| コマンド | 機能 | 例 |
|---|---|---|
createsuperuser | 管理者ユーザーを作成 | python manage.py createsuperuser |
shell | Django Shell に入る(ORM サポート付き) | python manage.py shell |
test | テストケースを実行 | python manage.py test blog |
collectstatic | 静的ファイルを収集(本番環境へのデプロイ) | python manage.py collectstatic |