春衣少年当酒歌,起舞四顾以笑和。这篇文章主要讲述,我就弄懂了 Python Django 的 django-admin 命令行工具集相关的知识,希望能为你提供帮助。
十五、django-admin 命令行工具
15.1 django-admin 和 manage.py 简介django-admin
是 Django 的命令行工具集,在之间的博客中已经有所设计了,manage.py
是创建 Django 项目自动生成的文件, 二者在使用的时候除了语法有差异,能做同样的事情
例如启动网站,我们常用的 python manage.py runserver
,用 django-admin
修改命令为:django-admim runserver
。
如果你想一直使用 django-admin
,那需要提前配置好 DJANGO_SETTINGS_MODULE
环境变量,这个提前配置就有一定的技术难度了,具体实现如下。
首先找到 manage.py
文件,在里面找到环境变量设置为 cutegirl.settings
,如下图所示。
文章图片
复制该值,将其存放到电脑环境变量中。
【,我就弄懂了 Python Django 的 django-admin 命令行工具集】
文章图片
这样去项目目录运行我们的程序,会出现一个错误,异常如下:
ModuleNotFoundError: No module named cutegirl
模块异常,这时还要找到 Python 安装目录,然后在该目录下寻找如下文件夹
Python37\\Lib\\site-packages
,在该文件中创建 django-site.pth
文件,文件中写入 cutegirl
项目目录。实现如下:文章图片
接下来准备工作完成,就可以运行
django-admin
命令了,得到下述内容表示运行成功,输出内容也罗列在了下方,这些都是后续要学习的参考内容。cutegirl>
django-adminType django-admin help <
subcommand>
for help on a specific subcommand.Available subcommands:[auth]
changepassword
createsuperuser[contenttypes]
remove_stale_contenttypes
[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver[sessions]
clearsessions[staticfiles]
collectstatic
findstatic
runserver
准确的说以下三个命令都是相同的。
django-admin runserver
python manage.py runserver
python -m django runserver
都可以出现如下启动详情:
Django version 3.1.7, using settings cutegirl.settings
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
15.2 必会的 help学习任何命令都要先学会使用帮助手册,
help
命令就是用于这个用于的。以下两个命令出现内容一致,都是上文所示命令展示。
django-admin
django-admin help
还可以使用
help
查询指定命令帮助文档。格式如下:
django-admin help 命令名
django-admin help --commands
django-admin help runserver
运行效果如下所示。
文章图片
15.3 检查 check
check
命令用来检查整个 Django
项目是否存在错误。默认使用方式为:
django-admin check
输出:
System check identified no issues (0 silenced).
如果希望授权检查特定的应用,只需要修改命令如下所示即可。
django-admin check auth scoring
通过调用
--list-tags
可以查看全部可用的应用。django-admin check --list-tags
基于上述命令的输出,你可以尝试下述写法。
django-admin check --tag urls
15.4 dbshell使用
settings.py
文件中 ENGINE
设置中指定的数据库引擎的命令行客户端,默认的是唤起 Sqlite3
数据库命令行客户端。>
django-admin dbshell
CommandError: You appear not to have the sqlite3 program installed or on your path.
但是运行过程中出现了如下 BUG,该内容是由于
Django
只集成 了 Sqlite3
的访问接口,并没有可执行文件,下载可执行文件 sqlite3.exe
,然后放置到 C:\\Windwos\\System32
中即可。这里给大家找到了一个直接下载的链接,可以 点击下载 即可。也可以自行打开官网寻找最新的
sqlite3.exe
。文章图片
再次运行之后,得到下图所示内容:
>
django-admin dbshell
SQLite version 3.7.14.1 2012-10-04 19:37:12
Enter ".help" for instructions
Enter SQL statements terminated with a ";
"
sqlite>
15.5 dumpdata输出指定应用,例如本例(
scoring
)中的指定模型的数据。>
django-admin dumpdata scoring.score
["model": "scoring.score", "pk": 1, "fields": "customer": 1, "score": 50, "model": "scoring.score", "pk": 2, "fields": "customer": 2,
"score": 30, "model": "scoring.score", "pk": 3, "fields": "customer": 2, "score": 0, "model": "scoring.score", "pk": 4, "fields":
"customer": 2, "score": 0]
增加一个
--indent=4
可以对结果进行格式化输出。使用 --output
可以将数据保存到文件中。>
django-admin dumpdata scoring.score --indent=4
["model": "scoring.score",
"pk": 1,
"fields":
"customer": 1,
"score": 50,
15.6 迁移Django 通过迁移(migrate)命令将 Model 中的修改写入到数据库中,
makemigrations
根据模型变化生成迁移代码,迁移代码会存放在每个应用下的
migrations
文件夹,如下图所示。文章图片
如果模型没有变化,会得到如下结果。
>
django-admin makemigrations scoring
No changes detected in app scoring
这里可以扩展一下相关迁移的生成方式。
# 生成一个空迁移
django-admin makemigrations scoring --empty
# 固定名称生成
django-admin makemigrations scoring --empty --name xiangpi
migrate
使数据库状态与当前模型迁移集同步,即把模型的最新状态部署到数据库。
该命令的语法格式为:
django-admin migrate [app_label] [migration_name]
如果提供了
migration_name
,系统会把数据库回滚到指定版本。sqlmigrate
该命令可以将某个
migrate
输出为 SQL 语句。>
django-admin sqlmigrate scoring 0001_initial
showmigrations
显示项目中所有的迁移文件。
15.7 其它零碎小命令version
查看 Django 版本。
cutegirl>
django-admin version
3.1.7
makemessages
用于国际化和本地化时,生成
.po
文件。compilemessages
编译
.po
消息文件为 .mo
文件。上述两个命令都用在国际化和本地化上面,未使用阶段了解即可。
createcachetable
在
settings.py
中配置 CACHES
即可实现缓存表功能。diffsettings
显示当前
settings.py
文件与 Django
的默认设置之间的差异。flush
清空当前数据库的数据。保留
migration
的变更不会被清除。只删除数据,不删除表结构。inspectdb
通过已有数据库表生成
models.py
文件。也可以将视图创建为模型文件。loaddata
将
fixture
文件加载到数据库中。其中 fixture
是序列化好的文件,文件格式一般为 JSON 和 XML。startproject 和 startapp
创建项目和创建 APP 应用。
runserver
启用
Django
提供的轻量级的 Web
服务器,该服务器一般用于开发测试,在生产环境中不能使用。changepassword
当使用了
Django
的认证系统之后,可以修改用户密码。createsuperuser
建立超级用户.
clearsessions
清除过期的会话。
15.8 本篇博客小节本篇博客重点解释了 Django 中的 django-admin 命令行,更多的内容可以去查询 官方手册
本文为大家罗列了最常用的一部门。
推荐阅读
- #yyds干货盘点#jackson学习之五(JsonInclude注解)
- 使用Flow分页处理数据
- 微服务架构 | 5.1 使用 Netflix Hystrix 断路器
- 微服务架构 | 5.2 基于 Sentinel 的服务限流及熔断
- 微服务架构 | 5.4 Sentinel 流控统计和熔断的源码分析
- 自上而下的理解网络——TCP篇
- XXE外部实体注入(XML External Entity Injection)学习笔记
- 聊聊 JDBC 的 executeBatch || 对比下不同数据库对 JDBC batch 的实现细节
- 字节可寻址内存和字可寻址内存之间的差异