Django中添加manage.py自定义命令
最近一直忙着寻找实习,也没什么时间来学习新的知识,越找啊越觉得自己懂得东西少。现在安顿下来,也要静下心来学习了!
manage.py是django的管理文件,简单的来说也可以理解为一个总控制台,我们日常操作django都可以通过他,比如我们需要启动调试服务器,我们会用到这样的命令:
python2 manage.py runserver
runserver就是其中一个管理命令,那么我们现在来尝试下自己添加管理命令。有人可能会这样认为管理嘛干嘛一定要在这里添加命令,自己写个脚本不就可以了,我是这样理解的,每个app都有自己的功能,如果需要一些自定义的功能的时候这样分类方便,将命令写入app也有助于以后app的重构。
再来个通俗点的,规范总是有价值的,不知道为什么那么遵守就是!开个玩笑!
我们先创建一个以命令名称为文件名的py文件,例如mycommand.py写入类似下面的代码:
1 | from django.core.management.base import BaseCommand |
简单的来说就是继承BaseCommand来实现我们需要的功能,这里args指的是参数,但是并不影响你的输入,仅作为帮助提示,help顾名思义帮助文档,类似__doc__主要显示这条命令的功能,当然这两个参数可以不写的,主要就是其中的handle函数,这个函数完成这条命令的主体功能!
完成这些后将这个文件放入你的app的management/commands目录下目录结构应该是这样的
1 | ├── __init__.py |
这样django就会自动识别这些命令了,记得要启用你的app哦。这个时候我们运行
python2 manage.py
你应该可以看到他提示你的命令了
[myapp]
mycommand
现在我们看看提示
1 | $ python2 manage.py help mycommand |
然后运行试试
1 | $ python2 manage.py mycommand |
一个简单的例子就这样完成了,再使用时,好好考虑那些功能需要做成manage.py的命令,比如我准备写个简单的命令,将博客文章导出成markdown文件,做个备份