Django自定义命令

news2024/11/18 21:29:25

Django自定义命令

我们知道,Django内部内置了很多命令,例如

python manage.py runserver
python manage.py makemigrations
python manage.py migrate

我们可以在python控制台中查看所有命令
在这里插入图片描述

我们也可以自定义命令,让python manage.py执行

  • 在已注册的app中创建指定的文件夹management和二级文件夹commands(文件夹名称固定)
  • 在文件夹commands中创建文件wilson.py,命令就为python manage.py wilson

wilson.py文件中,我们需要写一个Command类,继承BaseCommand,并重写handle()方法

当我们执行python manage.py wilson时,具体的操作就在handle()方法中

from django.core.management.base import BaseCommand


class Command(BaseCommand):

    def handle(self, *args, **options):
        print("wilson")

在这里插入图片描述

在其父类BaseCommand中,有一个add_arguments方法,可以支持我们解析命令后的参数(字典形式)

from django.core.management.base import BaseCommand


class Command(BaseCommand):

    def handle(self, *args, **options):
        print("wilson", options)

    def add_arguments(self, parser):
        parser.add_argument("v1")
        parser.add_argument("v2")

在这里插入图片描述

关于python manage.py createsuperuser命令

在django中的auth-app中,有一个createsupersuer.py文件

在这里插入图片描述

在其初始化方法中,执行函数get_user_model(),本质上是去寻找指定的model类,读取配置文件中的AUTH_USER_MODEL = "auth.User",也就是auth中的User表

在这里插入图片描述

然后去寻找USERNAME_FIELD字段,也就是配置文件中定义的"username"

在其handle()函数中,主要执行提示信息和接受我们输入的用户名,密码,邮箱

在这里插入图片描述

在其最后执行了

self.UserModel._default_manager.db_manager(database).create_superuser(**user_data)

本质上就是执行了内部的自定义命令create_superuser来创建超级用户

User.objects.create_superuser(**user_data)

注:其中db_manager(database)用来选择数据库,默认是default

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1683670.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何使用甘特图来做任务管理?zz-plan甘特图的实践指南

在项目管理和任务调度中,甘特图是一种非常实用的工具,它可以帮助团队成员清晰地规划、执行和跟踪项目进度。然而,如何有效利用甘特图进行任务管理,对于许多团队来说仍然是一个挑战。本文将结合 zz-plan https://zz-plan.com/ 甘特…

彻底搞懂JavaScript原型和原型链

基于原型编程 在面向对象的编程语言中,类和对象的关系是铸模和铸件的关系,对象总是从类创建而来,比如Java中,必须先创建类再基于类实例化对象。 而在基于原型编程的思想中,类并不是必须的,对象都是通过克隆…

Unity数据持久化2——XML

简介: 基础知识 XML文件格式 XML基本语法 XML属性 练习: C#读取存储XML XML文件存放位置 读取XML文件 练习: 存储修改XML文件 练习: 总结 实践小项目 必备知识点 必备知识点——C#中XML序列化 必备知识点——C#中XML反序列化 必备…

ubuntu设置root开机登录,允许root用户ssh远程登录

ubuntu与centos系统不同,默认root开机不能登录。 1、输入一下命令创建root密码,根据提示输入新密码 sudo passwd root 2、打开gdm-autologin文件,将auth required pam_succeed_if.so user ! root quiet_success这行注释掉,这行就…

【python】python社交交友平台系统设计与实现(源码+数据库)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

python安装路径可以更改吗

Python3.5默认安装路径是当前用户的 AppData\.. 下 现在安装过程中默认是install just for me,这个会把python默认安装到AppData文件夹中,如果选了install for all users,就会默认安装到C盘根目录了。 python3.5 安装: 输入官网…

机器学习入门-sklearn

概述 机器学习定义是什么? 官方定义: 机器学习是人工智能核心,是使计算机具有智能的根本途径。(地位) 机器学习专门研究计算机怎样模拟或实现人类的学习行为(研究内容),以获取新的…

PyCharm控制台中文乱码,输出�¹���

问题:很离谱的一件事就是python控制台可以正常的输出中文,但在pycharm控制台中就是乱码。 解决方法:之前看他们一些文章说设置pycharm的文件编码,不管怎么改都没用。 只是设置第一张图中的内容无效 好了,打完收工~

uview1.0 u-form表单回显校验不通过

提交到后端的数据,回显后不做任何修改无法通过表单校验 原因,u-form表单校验的类型默认为string,但是后端返回的是integer类型,导致无法通过校验 解决,既然后端返回的是整数形,那么我们就将校验规则的type…

有没有软件可以监控电脑软件?监控电脑软件的系统

有没有软件可以监控电脑软件?监控电脑软件的系统 电脑软件如果不合规也会给企业带来安全危害,比如盗版软件,比如游戏软件耽误工作等,所以需要对电脑软件的监控。下面我将详细介绍几款代表性的电脑监控软件及其功能,帮…

vscode添加代办相关插件,提高开发效率

这里写目录标题 前言插件添加添加TODO Highlight安装TODO Highlight在项目中自定义需要高亮显示的关键字 TODO Tree安装TODO Tree插件 单行注释快捷键 前言 在前端开发中,我们经常会遇到一些未完成、有问题或需要修复的部分,但又暂时未完成或未确定如何处…

树的非递归遍历(层序)

层序是采用队列的方式来遍历的 就比如说上面这颗树 他层序的就是:1 24 356 void LevelOrder(BTNode* root) {Que q;QueueInit(&q);if (root){QueuePush(&q, root);}while (!QueueEmpty(&q)){BTNode* front QueueFront(&q);QueuePop(&q);print…

Flutter Text导致A RenderFlex overflowed by xxx pixels on the right.

使用Row用来展示两个Text的时候页面出现如下异常,提示"A RenderFlex overflowed by xxx pixels on the right." The following assertion was thrown during layout: A RenderFlex overflowed by 4.8 pixels on the right.The relevant error-causing widget was:…

存储+调优:存储-Cloud

存储调优:存储-Cloud Master Server 配置: IP192.168.1.254 useradd mfs tar zxf mfs-1.6.11.tar.gz.gz cd mfs-1.6.11 ./configure --prefix/usr --sysconfdir/etc --localstatedir/var/lib --with-default-usermfs --with-default-groupmfs --disabl…

机器学习之决策树算法

使用决策树训练红酒数据集 完整代码: import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap from sklearn import tree, datasets from sklearn.model_selection import train_test_split# 准备数据,这里…

安装pip install xmind2image失败,4种安装pip install xmind2image在temunx高级终端的失败,却又意外发现

~ $ ~ $ ![在这里插入图片描述](https://img-blog.csdnimg.cn/b59cbb49c3e14a3bbec5675164a14009.png)#!/bin/bash # 创建一个新的空白XMind文件 xmind_dir ( m k t e m p − d ) x m i n d f i l e n a m e ′ t e s t . x m i n d ′ x m i n d p a t h " (mktemp -d…

github设置项目分类

https://www.php.cn/faq/541957.html https://docs.github.com/zh/repositories/working-with-files/managing-files/creating-new-files

在数据中心网络中隔离大象流

1000 条短突发中混入几条大象流将严重影响短突发 p99 latency,造成抖动。这个我在 隔离网络流以优化网络 论证过了,还有另一种更直观的理解方式: 规模差异越大,算术均值越偏离中位数,即算术均值的分位数越高。 可以…

web4.0-元宇宙虚拟现实

互联网一直在不断演变和改变我们的生活方式,从Web逐渐 1.0时代的静态网页到Web 2.0时代的社会性和内容制作,再从Web逐渐 在3.0阶段,互联网发展一直推动着大家时代的发展。如今,大家正站在互联网演化的新起点上,迈入Web…

两步将 CentOS 6.0 原地升级并迁移至 RHEL 7.9

《OpenShift / RHEL / DevSecOps 汇总目录》 说明 本文介绍如何将一个 CentOS 6.0 的系统升级并转换迁移到 RHEL 7.9。 本文是《在离线环境中将 CentOS 7.X 原地升级并迁移至 RHEL 7.9》阶进篇。 所有被测软件的验证操作可参见上述前文中对应章节的说明。 准备 CentOS 6.…