就靠这一篇文章,我就弄懂了 Python Django 的 django-admin 命令行工具集

橡皮擦,一个逗趣的互联网高级网虫。新的系列,让我们一起进入 Django 世界。

已经完成的文章

十五、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 命令行工具集

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

ModuleNotFoundError: No module named 'cutegirl'

模块异常,这时还要找到 Python 安装目录,然后在该目录下寻找如下文件夹 Python37\Lib\site-packages,在该文件中创建 django-site.pth 文件,文件中写入 cutegirl 项目目录。实现如下:

就靠这一篇文章,我就弄懂了 Python Django 的 django-admin 命令行工具集

接下来准备工作完成,就可以运行 django-admin 命令了,得到下述内容表示运行成功,输出内容也罗列在了下方,这些都是后续要学习的参考内容。

cutegirl> django-admin

Type '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 检查 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

就靠这一篇文章,我就弄懂了 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

django-admin diffsettings

显示当前 settings.py 文件与 Django 的默认设置之间的差异。

flush

django-admin flush

清空当前数据库的数据。保留 migration 的变更不会被清除。只删除数据,不删除表结构。

inspectdb
通过已有数据库表生成 models.py 文件。也可以将视图创建为模型文件。

loaddata
fixture 文件加载到数据库中。其中 fixture 是序列化好的文件,文件格式一般为 JSON 和 XML。

startprojectstartapp
创建项目和创建 APP 应用。

runserver
启用 Django 提供的轻量级的 Web 服务器,该服务器一般用于开发测试,在生产环境中不能使用。

changepassword
当使用了 Django 的认证系统之后,可以修改用户密码。

createsuperuser
建立超级用户.

clearsessions
清除过期的会话。

15.8 本篇博客小节

本篇博客重点解释了 Django 中的 django-admin 命令行,更多的内容可以去查询 官方手册

本文为大家罗列了最常用的一部门。

相关阅读

  1. Python 爬虫 100 例教程,超棒的爬虫教程,立即订阅吧
  2. Python 游戏世界(更新中,目标文章数 50+,现在订阅,都是老粉)
  3. Python 爬虫小课,精彩 9 讲,只要 9 块 9

今天是持续写作的第 <font color="red">135</font> / 200 天。
如果你想跟博主建立亲密关系,可以关注同名公众号 <font color="red">梦想橡皮擦</font>,近距离接触一个逗趣的互联网高级网虫。
博主 ID:梦想橡皮擦,希望大家<font color="red">点赞</font>、<font color="red">评论</font>、<font color="red">收藏</font>。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容