前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Django 2.2文档系列】编写自定义manage.py 命令

【Django 2.2文档系列】编写自定义manage.py 命令

作者头像
BigYoung小站
发布于 2020-05-06 06:10:40
发布于 2020-05-06 06:10:40
3700
举报
文章被收录于专栏:BigYoung小站BigYoung小站

官网文档地址:编写自定义 django-admin 命令

开篇话:

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

操作步骤要点:

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

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

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

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

代码语言:txt
AI代码解释
复制
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配置。

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

如果各位有什么不明白的地方,可以留言回复。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BigYoung小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java反射机制原理剖析
当程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言。我们认为java并不是动态语言,但是java有一个非常突出的动态相关机制,俗称:反射。
周陆军博客
2023/04/09
4690
Java反射机制及原理
相比于Java的代理,在实际项目中反射其实要更常用的多,所以学好反射不仅是能懂得框架设计的原理,更能在日常工作开发中提高编程能力
科技新语
2025/05/28
740
Java反射机制及原理
Java反射机制深度剖析
Java反射机制是Java语言中一种很重要的机制,可能在工作中用到的机会不多,但是在很多框架中都有用到这种机制。我们知道Java是一门静态语言,在程序编译时变量的数据类型都已经确定,那么在Java运行时环境中,对于任意一个类,我们能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是肯定的。这种动态获取类的信息以及动态调用对象的方法的功能来自于Java的反射机制(Reflection)。
烂猪皮
2020/11/02
3450
Java反射机制深度剖析
一篇文章全面了解Java反射机制【珍藏】
Java的反射机制在实践中可谓无处不在,如果你已经工作几年,还对Java的反射机制一知半解,那么这篇文章绝对值得你读一读。
程序新视界
2020/03/27
3890
java反射机制
基本概念   在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法?   答案是肯定的。   这种动态获取类的信息以及动态调用对象的方法的功能来自于Java语言的反射(Reflection)机制。 Java反射机制主要提供了以下功能:   1.在运行时判断任意一个对象所属的类。   2.在运行时构造任意一个类的对象。   3.在运行时判断任意一个类所具有的成员变量和方法。   4.在运行时调用任意一个对象的方法。   Reflection是Ja
java达人
2018/01/31
6570
java反射机制简单介绍
不慌,先来一波介绍 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的以及动态调用对象的方法的功能称为Java的反射机制。 读完解释,接着来! 反射机制的好处 应用场景 在运行时判定任意一个对象所属的类 逆向代码 ,例如反编译 在运行时构造任意一个类的对象 与注解相结合的框架 在运行时判定任意一个类所具有的成员变量和方法 单纯的反射机制应用框架 在运行时调用任意一个对象的方法 动态生成类框架(GSon) 生成动
gfu
2019/08/28
3770
Java反射机制(简单易懂)
Java程序中许多对象在运行时会出现两种类型:运行时类型(RTTI)和编译时类型,例如Person p = new Student();这句代码中p在编译时类型为Person,运行时类型为Student。程序需要在运行时发现对象和类的真实信息。而通过使用反射程序就能判断出该对象和类属于哪些类。
VIBE
2022/11/18
2220
Java反射机制(简单易懂)
Java反射机制
JAVA 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 java 语言的反射机制。
黑洞代码
2021/01/14
3490
Java反射机制
你一直弄不懂的Java反射机制
Java反射机制, 啧啧, 当你看到这几个字的时候就有一种不好的预感, 没错, 这个东西是不怎么好理解, 所以特开此篇, 从实用的角度, 用确切的代码来讲解一下"反射"这个东西.
Java团长
2018/07/23
4650
你一直弄不懂的Java反射机制
Java反射机制详解与“动”在哪里
反射机制是指在运行时动态地获取类的信息,并能够通过这些信息对类的对象进行操作。Java中的反射机制包括获取类信息、获取成员信息、创建对象、调用方法等操作。通过反射机制,我们可以在运行时动态地了解类的结构、属性和方法等信息,从而实现对类的动态操作。通俗来讲,实例化号对象之后,反过来获取Class对象(一个类只有一个Class对象),这个对象包含了完整的类的结构信息,这个对象就像一个镜子,通过这个镜子看到类的结构,所以就就要反射。
小明爱吃火锅
2023/10/30
3740
Java反射机制详解与“动”在哪里
java反射原理-重要
在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一个类所具有的成员变量和方法在运行时调用任意一个对象的方法
用户7886150
2021/04/26
3740
Java反射机制
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
提莫队长
2019/02/21
4080
Java反射机制详解
1.在运行时,对于一个java类,能否知道属性和方法;能否去调用它的任意方法? 答案是肯定的。
全栈程序员站长
2022/09/28
2610
Java反射机制详解
java反射机制-反射的理解与使用举例(一)
Java反射机制是指在程序运行时动态地获取一个类的信息、访问或修改对象的属性、调用对象的方法,而不需要事先知道该类的名称、方法名等静态信息的能力。反射机制在Java语言中是非常重要的,其应用场景非常广泛,例如在框架开发、动态代理、自定义注解、动态编译等方面都有很好的应用。
玖叁叁
2023/05/11
2200
java反射机制
1.反射的定义 java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 java反射机制主要提供了以下功能 在运行时判断任意一个对象所属的类; 在运行时构造任意一个类的对象; 在运行时判断任意一个类所具有的成员变量和方法; 在运行时调用任意一个对象的方法;生成动态代理 2.反射的优缺点 为什么要用反射机制?直接创建对象不就可以了吗,这就涉及到了动态与静
三哥
2018/06/15
8873
深入探讨Java反射:解析机制与应用场景
当谈及Java编程语言的强大功能时,反射(Reflection)是一个不可忽视的特性。反射允许程序在运行时检查和操作其自身的结构,这为开发者提供了一种动态获取信息和执行操作的途径。在本篇博客中,我们将深入探讨Java反射的原理、用法以及一些实际场景中的应用。
修己xj
2024/01/03
3590
深入探讨Java反射:解析机制与应用场景
Java的反射机制前言:Java反射的使用:总结:
前言: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 Java反射的使用: 有如下student类: public class Student { private int age; private String name; public Student() { super(); } pub
贪挽懒月
2018/06/26
5920
java反射机制
Java反射机制是指在运行时,程序可以获取和操作其本身或其他对象的信息的能力。Java反射机制为开发人员提供了许多动态编程的能力,例如创建对象、调用方法、访问成员变量等。
堕落飞鸟
2023/03/31
5520
java 反射机制说的透彻一点
很多时候我们会遇到别人问一个问题:你给我讲一下反射,到底是什么东西?怎么实现的?我们能用反射来做什么?它有什么优缺点?下面我们会围绕着这几个问题展开:
秦怀杂货店
2020/11/22
7140
java 反射机制说的透彻一点
JAVA反射机制及其原理实现
反射就是把java类中的各种成分映射成一个个的Java对象 例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把各个组成部分映射成一个个对象。
张哥编程
2024/12/19
1010
JAVA反射机制及其原理实现
相关推荐
java反射机制原理剖析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档