在任意一个已安装的应用下,创建如下包目录:

# 在每个 app 目录下,新建一个 management/commands 目录,Django 会给目录下的每个 Python 文件注册一个 manage.py 命令,这个命令的名字不以下划线开头。
polls/
__init__.py
models.py
management/
__init__.py
commands/
__init__.py
_private.py
closepoll.py
tests.py
views.py

在commads目录下面创建我们的命令文件,命令的名称就是命令文件的名称,命令文件内部的基本结构如下:

__author__ = 'geebos'
from django.core.management.base import BaseCommand, CommandError
from app.models import UserInfo
import os
import csv class Command(BaseCommand):
help = '导入数据,以逗号分隔的csv文件,编码为UTF-8npython manage.py import_data 数据文件路径' def add_arguments(self, parser):
parser.add_argument('path', type=str) def handle(self, *args, **options):
path = options['path']
if not os.path.isfile(path):
raise CommandError('文件不存在') print('正在导入...')
with open(path, 'r', newline='', encoding='utf-8_sig') as f:
reader = csv.DictReader(f) for t in reader:
UserInfo.objects.create(**dict(t))
print('导入完成')

首先定义一个Commad类(注意这个类名不能改变,并且一个文件内只能有一个Commad类),这个类继承自 django.core.management.base.BaseCommand.

help为命令的帮助文档,当输入错误命令时输出 help的内容

add_arguments函数用来添加参数,如果没有参数可以不定义这个函数。在这个函数里通过调用 parse.add_argument来添加参数.

handle是命令的处理函数,可以通过 options来取得从命令行输入的参数。

django中自定制命令的更多相关文章

  1. Django中的syncdb命令

    从官方文档的意思来看,现在他已经成为migrate命令的同义词了,和migrate命令有相同的作用. Deprecated since version 1.7: This command has be ...

  2. web 架构 /http协议,状态码,django中常用命令

    什么是web应用? web应用 架构 :B/S架构 | C/S架构 网站:BS架构其实就是应用程序: B是浏览器 S是sever(实现了wsgi协议,实现了socket的服务端) + applicat ...

  3. 在django项目中自定义manage命令(转)

    add by zhj 是我增加的注释 原文:http://www.cnblogs.com/holbrook/archive/2012/03/09/2387679.html 我们都用过Django的dj ...

  4. Django中的admin组件分析

    admin的使用介绍 django-admin的使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 setting ...

  5. Celery 分布式任务队列快速入门 以及在Django中动态添加定时任务

    Celery 分布式任务队列快速入门 以及在Django中动态添加定时任务 转自 金角大王 http://www.cnblogs.com/alex3714/articles/6351797.html ...

  6. Django中的app及mysql数据库篇(ORM操作)

    Django常见命令 在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目.启动Django程序.创建新的APP.数据库迁移等. 创建Django项目 一把我们都 ...

  7. django实现自定义manage命令的扩展

    在Django开发过程中我们都用过django-admin.py和manage.py命令. django-admin.py是一个命令行工具,可以执行一些管理任务,比如创建Django项目.而manag ...

  8. django中app分组

    08.13自我总结 django中app分组 一.django路由系统app进行分组 1.创建app 使用pycharm创建django的时候, 加上app的名字,后续多个app只需复制粘贴之前app ...

  9. 异步任务队列Celery在Django中的使用

    前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...

  10. Mysql事务探索及其在Django中的实践(一)

    前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...

随机推荐

  1. K8s进阶之LimitRange

    概述 官方文档:https://kubernetes.io/zh-cn/docs/concepts/policy/limit-range/ 在 Kubernetes(K8s)中,LimitRange ...

  2. AI面试助手面试精灵重磅发布“双栏模式”:极速和精准可以兼得

    引言 面试中的每一秒都至关重要,许多求职者反馈:面对面试官的犀利提问,要么因"卡壳"错失良机,要么因追求准确而延误回答时机.作为以顶级GPT为核心的AI面试助手,面试精灵始终致力于 ...

  3. ThinkBook16p2023(i9-13900H)使用m2转接oculink外接RTX4070Ti Super跑分

    ThinkBook16p2023(i9-13900H)使用m2转接oculink外接RTX4070Ti Super跑分 自媒体跑分 内屏 NVIDIA GeForce RTX 4070 Ti SUPE ...

  4. 玩客云 OEC/OECT 笔记(2) 运行RKNN程序

    目录 玩客云 OEC/OECT 笔记(1) 拆机刷入Armbian固件 玩客云 OEC/OECT 笔记(2) 运行RKNN程序 RKNN OEC/OEC-Turbo 使用的芯片是 RK3566/RK3 ...

  5. ET框架运行初次--客户端资源更新(Mac环境)

    1.首先在Mac上启动资源服务器.参考 https://www.cnblogs.com/cj8988/p/13965074.html 2.资源会下载到该位置( /Unity/Assets/Stream ...

  6. DotTrace系列:6. 程序异常诊断 和 Request慢处理

    一:背景 1. 讲故事 在我分析的众多dump中,有一些CPU爆高是因为高频的抛 Exception 导致,比如下面这张图,有 19 个线程都在抛 xxxResultException 异常. 从卦中 ...

  7. layui 关于table 导入方法

    <!--导入数据操作层--><div class="layui-form-item">    <div class="layui-form- ...

  8. 样本量的确定与OC函数

    在之前的假设检验文章中我们说过,在样本量固定的情况下,第一类错误的减少必然会导致第二类错误的增加.按照之前的例子,原假设依旧是一家馒头店每天卖出100个馒头,现在如果减少第一类错误(也就是减少显著性水 ...

  9. 使用war包安装jenkins

    war包下的jenkins是没有自己的配置文件 安装java jenkins必须依赖的 curl -O https://dshvv-1300009960.cos.ap-beijing.myqcloud ...

  10. 【8*】CDQ分治学习笔记

    前言 一直感觉 CDQ 分治是一个很高级的算法,但其实 CDQ 分治的思想早就接触过了.其实,也不是很困难嘛. 此类知识点大纲中并未涉及,所以[8]是我自己的估计,后带星号表示估计,仅供参考. CDQ ...