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
|
shell
|
启动 Django 交互式 Shell |
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 runserver8080# 仅修改端口
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
|
shell
|
进入 Django Shell(带 ORM 支持) |
python manage.py shell
|
test
|
运行测试用例 |
python manage.py test blog
|
collectstatic
|
收集静态文件(生产环境部署) |
python manage.py collectstatic
|