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__.py
    • settings.py:プロジェクト設定ファイル
    • urls.py:URL ルーティング設定
    • wsgi.py:WSGI アプリケーションのエントリポイント

2. 新規アプリの作成

通常は使用しますがmanage.pyアプリを作成する際は、django-admin を使用することもできます:

django-admin startapp 应用名称

これにより、新しい Django アプリが作成されます。内容は次のとおりです:

  • migrations/:データベースマイグレーションファイルのディレクトリ
  • __init__.py
  • admin.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
shellDjango 対話型シェルを起動する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 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 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  # ポートのみ変更

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  # 特定のバージョンにマイグレーション

その他のよく使うコマンド

コマンド機能例
createsuperuser管理者ユーザーを作成python manage.py createsuperuser
shellDjango Shell に入る(ORM サポート付き)python manage.py shell
testテストケースを実行python manage.py test blog
collectstatic静的ファイルを収集(本番環境へのデプロイ)python manage.py collectstatic
その他の拡張