前往小程序,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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
靶场实战(6):OSCP备考之VulnHub SolidState
使用命令sudo -u root nmap 172.16.33.35 -n -Pn -p- --reason -sV -sC -O获得主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1560
靶场实战(6):OSCP备考之VulnHub SolidState
靶机实战(9):OSCP备考之VulnHub BTRSys v2.1
使用命令sudo -u root nmap 172.16.33.51 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1290
靶机实战(9):OSCP备考之VulnHub BTRSys v2.1
靶场实战(7):OSCP备考之VulnHub Potato 1
使用命令sudo -u root nmap 172.16.33.43 -n -Pn -p- --reason -sV -sC -O,获得主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
2220
靶场实战(7):OSCP备考之VulnHub Potato 1
靶场实战(15):OSCP备考之VulnHub STAPLER
使用命令sudo -u root nmap 172.16.33.79 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
2100
靶场实战(15):OSCP备考之VulnHub STAPLER
靶场实战(19):OSCP备考之VulnHub HA WORDY
使用命令sudo -u root nmap 172.16.33.108 -n -Pn -p- --reason -sV -sC -O发现主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1870
靶场实战(19):OSCP备考之VulnHub HA WORDY
靶场实战(13):OSCP备考之VulnHub GAARA
使用命令sudo -u root 172.16.33.69 -n -Pn -p- --reason -sV -sC -O,获取主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1120
靶场实战(13):OSCP备考之VulnHub GAARA
靶场实战(12):OSCP备考之VulnHub SEPPUKU
使用命令sudo -u root nmap 172.16.33.62 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
2130
靶场实战(12):OSCP备考之VulnHub SEPPUKU
靶场实战(18):OSCP备考之VulnHub MY CMSMS
使用命令sudo -u root nmap 172.16.33.103 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1160
靶场实战(18):OSCP备考之VulnHub MY CMSMS
靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1
使用命令sudo -u root nmap 172.16.33.98 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1350
靶场实战(16):OSCP备考之VulnHub BORN2ROOT 1
靶机实战(10):OSCP备考之VulnHub Tre 1
使用命令sudo -u root nmap 172.16.33.53 -n -Pn -p- --reason -sV -sC -O发现主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
2340
靶机实战(10):OSCP备考之VulnHub Tre 1
靶机实战(5):OSCP备考之VulnHub SUNSET DECOY
使用命令sudo -u root nmap 172.16.33.40 -n -Pn -p- --reason -sV -sC -O获得主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1710
靶机实战(5):OSCP备考之VulnHub SUNSET DECOY
靶场实战(17):OSCP备考之VulnHub ASSERTION
使用命令sudo -u root nmap 172.16.33.99 -n -Pn -p- --reason -sV -sC -O发现主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1940
靶场实战(17):OSCP备考之VulnHub ASSERTION
靶机实战(8):OSCP备考之VulnHub haclabs no_name
使用命令 sudo -u root nmap 172.16.33.49 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1460
靶机实战(8):OSCP备考之VulnHub haclabs no_name
靶场实战(14):OSCP备考之VulnHub SUNSET NOONTIDE
使用命令sudo -u root 172.16.33.78 -n -Pn -p- --reason -sV -sC -O,发现主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1770
靶场实战(14):OSCP备考之VulnHub SUNSET NOONTIDE
靶机实战(3):GlasgowSmile-v1.1
使用命令sudo -u root nmap 10.58.81.115 -n -Pn -p- --reason -sV -sC -O获得主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1670
靶机实战(3):GlasgowSmile-v1.1
靶机实战(1):Empire LupinOne
使用命令sudo nmap 10.58.81.112 -n -Pn -p- --reason -sV -sC -O,获得主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1670
靶机实战(1):Empire LupinOne
靶机实战(4):Funbox: Rookie
使用命令sudo -u root nmap 172.16.33.30 -n -Pn -p- --reason -sV -sC -O获得主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1990
靶机实战(4):Funbox: Rookie
靶机实战(2):ICA 1
使用命令sudo nmap 10.58.81.114 -n -Pn -p- --reason -sV -sC -O获得主机开放的端口、提供的服务、使用的组件、组件的版本。
OneMoreThink
2024/10/15
1460
靶机实战(2):ICA 1
靶场实战(20):OSCP备考之内网靶场红日7
目标单位的 VPN/Wi-Fi 存在弱口令漏洞,可以爆破出密码,获得目标单位内网的访问权限(备注:这句是我编的,目的是让靶场更真实)。
OneMoreThink
2024/10/15
3540
靶场实战(20):OSCP备考之内网靶场红日7
Vulnhub-DOUBLETROUBLE靶机渗透实战
本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。
网络安全自修室
2024/05/23
3250
Vulnhub-DOUBLETROUBLE靶机渗透实战
相关推荐
靶场实战(6):OSCP备考之VulnHub SolidState
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档