官网文档地址:写自定义django-admin命令金句:你今天浪费的,是昨天死去的人期待的明天。开篇的话:pythonmanage.py我们使用的命令很多,如果我们想使用一些具体的较长的命令,比如:pythonmanage.pytest--keepdb--settings=appname.test_settings(commandFunction:When运行项目test,使用指定的配置文件),此时每次运行都很麻烦,可以通过设置自定义的manage.py命令来实现。操作步骤要点:第一步:新建自定义命令模块在已有项目中,在你要设置的项目app下,添加management/commands目录,新建python模块。模块名称不能以“_”开头,否则模块将不会被设置为自定义命令。自定义命令集是模块的名字,创建的目录树如下:appname/#django项目下的一个app__init__.pymodels.pymanagement/commands/_private.py#这个模块不会加入self定义命令newtest.py#该模块将被设置为自定义命令,命令为模块名tests.pyviews.py注意:添加自定义命令的应用需要在`settings.py`INSTALLED_APPS中注册。第二步:编写自定义命令函数,设置newtest.py要实现的功能,newtest.py内容:importosimporttracebackfromdjango.core.management.baseimportBaseCommand,CommandErrorclassCommand(BaseCommand):defadd_arguments(self,parser):parser.add_argument(dest='appname',#参数名称type=str,#参数类型help='测试哪个app',#帮助信息)defhandle(self,*args,**options):try:shell_info='pythonmanage.pytest%s--keepdb--settings=appname.test_settings'%(options['appname'])os.system(shell_info)self.stdout.write(self.style.SUCCESS('command%s执行成功,参数为%s'%(__file__,options['appname'])))except:self.stdout.write(traceback.format_exc())self.stdout.write(self.style.ERROR('commandexecutionError'))上面的函数解释:当执行pythonmanage.pynewtestappname时,会调用test测试,运行指定的test-specificsettings.py配置。注意:要打印输出信息,使用:`self.stdout.write("Unterminatedline",ending='')`,`ending=''参数是指定输出信息的结束,默认为如果参数未配置符号,则换行。`有什么不明白的可以留言回复。