,我就弄懂了 Python Django 的 django-admin 命令行工具集

春衣少年当酒歌,起舞四顾以笑和。这篇文章主要讲述,我就弄懂了 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 命令行工具集

文章图片

复制该值,将其存放到电脑环境变量中。
【,我就弄懂了 Python Django 的 django-admin 命令行工具集】
,我就弄懂了 Python Django 的 django-admin 命令行工具集

文章图片

这样去项目目录运行我们的程序,会出现一个错误,异常如下:
ModuleNotFoundError: No module named cutegirl

模块异常,这时还要找到 Python 安装目录,然后在该目录下寻找如下文件夹 Python37\\Lib\\site-packages,在该文件中创建 django-site.pth 文件,文件中写入 cutegirl 项目目录。实现如下:
,我就弄懂了 Python Django 的 django-admin 命令行工具集

文章图片

接下来准备工作完成,就可以运行 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

运行效果如下所示。
,我就弄懂了 Python Django 的 django-admin 命令行工具集

文章图片

15.3 检查 checkcheck 命令用来检查整个 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
,我就弄懂了 Python Django 的 django-admin 命令行工具集

文章图片

再次运行之后,得到下图所示内容:
> 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 文件夹,如下图所示。
,我就弄懂了 Python Django 的 django-admin 命令行工具集

文章图片

如果模型没有变化,会得到如下结果。
> 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 命令行,更多的内容可以去查询 官方手册
本文为大家罗列了最常用的一部门。

    推荐阅读