网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

Django如何编写自定义manage.py命令

小编给大家分享一下Django如何编写自定义manage.py命令,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

成都服务器托管,成都创新互联提供包括服务器租用、成都服务器托管、带宽租用、云主机、机柜租用、主机租用托管、CDN网站加速、域名与空间等业务的一体化完整服务。电话咨询:18980820575

python manage.py  的命令我们用了很多,要是我们想要使用一些特定的较长的命令时,比如:python manage.py test --keepdb --settings=appname.test_settings(命令作用:运行项目测试时,使用指定的配置文件),这时每次运行的就很麻烦,可以通过设定自定义manage.py命令来实现。

操作步骤要点:

第一步:新建自定义命令模块

在已有的项目中,在你要设置的项目app下,增加management/commands目录,新建python模块,模块名不能以“_”开头,否则模块不会被设置为自定义命令。设置的自定义命令为模块的名字,创建好后的目录树如下:

appname/        # django项目下的某个app
   __init__.py
   models.py
   management/
       commands/
           _private.py # 这模块不会被加入到自定义命令
           newtest.py    # 这个模块会被设置为自定义命令,命令为模块名
   tests.py
   views.py
注意:添加自定义命令的app需要在`settings.py`INSTALLED_APPS中注册。
第二步:编写自定义命令功能

设置newtest.py要实现的功能,newtest.py的内容:

import os
import traceback
from django.core.management.base import BaseCommand, CommandError

class Command(BaseCommand):

   def add_arguments(self, parser):

       parser.add_argument(
           dest='appname', # 参数名字
           type=str,   # 参数类型
           help='测试哪个app', # 帮助信息
       )

   def handle(self, *args, **options):
       try:
           shell_info ='python manage.py test %s --keepdb  --settings=appname.test_settings' % (options['appname'])
           os.system(shell_info)
           self.stdout.write(self.style.SUCCESS('命令%s执行成功, 参数为%s' % (__file__, options['appname'])))
       except:
           self.stdout.write(traceback.format_exc())
           self.stdout.write(self.style.ERROR('命令执行出错'))

以上功能解释:执行python manage.py newtest appname时,就会调用test测试,并运行指定的测试专用settings.py配置。

注意:要打印输出信息,要使用:`self.stdout.write("Unterminated line", ending='')`,`ending=''参数是指定输出信息后以什么结尾,不配置参数默认是换行符。`

看完了这篇文章,相信你对“Django如何编写自定义manage.py命令”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


新闻标题:Django如何编写自定义manage.py命令
网页路径:http://bjjierui.cn/article/ppjodo.html

其他资讯