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

# 在每个 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. java实现一个接口多个实现类,并且依次调用指定方法

    接口 package cn.daenx.yhchatsdk.mytest; public interface MyInterface { /** * 返回-1,后面的实现类将不再执行 * 返回0,后面 ...

  2. Huawei Matebook e 2022 安装 archlinux 双系统

    本文同步发布于我的网站 安装之前 wifi 名称修改为英文+数字的,以防之后没法联网 准备好 U 盘并使用 GPT 分区表写入最新的 arch 镜像. 基础安装 开机按 F2 进入 UEFI/BIOS ...

  3. 算法新手村 Day01

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 前言: 算法 算法的分类 几个排序算法 0.两值交换 1.选择排序 动图 思路 代码 2.冒泡排序 动图 思路 代码 3.插入排序 动图 思路 ...

  4. dify打造数据可视化图表

    一.概述 在日常工作和学习中,我们经常需要和数据打交道.无论是分析报告.项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语. 一款能让数据可视化变得超级简单的 MCP Server, ...

  5. [推荐收藏]JavaScript书籍精读笔记系列导航

    写在前面 去年我整理了一份「前端工程师必备书籍清单.md」,得到很多人的关注.这份清单里面的书籍大部分我都看过了,但有些知识点难免看后就忘.之前看这些书对一些重点都进行了记录,最近一段时间计划把这些重 ...

  6. 开源项目丨Taier1.2版本发布,新增工作流、租户绑定简化等多项功能

    2022年7月26日,Taier1.2版本正式发布! 本次版本发布更新功能: 新增工作流 新增OceanBase SQL 新增Flink jar任务 数据同步.实时采集支持脏数据管理 Hive UDF ...

  7. pytorch入门 - 基于AlexNet神经网络实现猫狗大战

    基于之前的博客 pytorch入门 - AlexNet神经网络,并借助Kaggle 的 Dogs vs Cats Redux 数据集,实现一个基于 AlexNet 的二分类模型识别猫与狗. 完整流程涵 ...

  8. Docker 一键安装部署 JumpServer 堡垒机

    一.环境准备 bash   # 更新系统 sudo apt update && sudo apt upgrade -y # 安装 Docker sudo apt install -y ...

  9. SQL Server 清除表TRUNCATE TABLE 提示: 因为该表正由 FOREIGN KEY 约束引用

    https://blog.csdn.net/dengguawei0519/article/details/101315699 1.找到引用这个表外键名称 SELECT * FROM sys.forei ...

  10. Django+DRF 实战:自定义异常处理流程

    一.DRF 异常处理流程 DRF 默认异常处理流程 DRF默认的异常处理流程如下: 当异常发生时,会自动调用rest_framework.views.exception_handler 函数来处理异常 ...