django中自定制命令
在任意一个已安装的应用下,创建如下包目录:
# 在每个 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中自定制命令的更多相关文章
- Django中的syncdb命令
从官方文档的意思来看,现在他已经成为migrate命令的同义词了,和migrate命令有相同的作用. Deprecated since version 1.7: This command has be ...
- web 架构 /http协议,状态码,django中常用命令
什么是web应用? web应用 架构 :B/S架构 | C/S架构 网站:BS架构其实就是应用程序: B是浏览器 S是sever(实现了wsgi协议,实现了socket的服务端) + applicat ...
- 在django项目中自定义manage命令(转)
add by zhj 是我增加的注释 原文:http://www.cnblogs.com/holbrook/archive/2012/03/09/2387679.html 我们都用过Django的dj ...
- Django中的admin组件分析
admin的使用介绍 django-admin的使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.可以在项目的 setting ...
- Celery 分布式任务队列快速入门 以及在Django中动态添加定时任务
Celery 分布式任务队列快速入门 以及在Django中动态添加定时任务 转自 金角大王 http://www.cnblogs.com/alex3714/articles/6351797.html ...
- Django中的app及mysql数据库篇(ORM操作)
Django常见命令 在Django的使用过程中需要使用命令让Django进行一些操作,例如创建Django项目.启动Django程序.创建新的APP.数据库迁移等. 创建Django项目 一把我们都 ...
- django实现自定义manage命令的扩展
在Django开发过程中我们都用过django-admin.py和manage.py命令. django-admin.py是一个命令行工具,可以执行一些管理任务,比如创建Django项目.而manag ...
- django中app分组
08.13自我总结 django中app分组 一.django路由系统app进行分组 1.创建app 使用pycharm创建django的时候, 加上app的名字,后续多个app只需复制粘贴之前app ...
- 异步任务队列Celery在Django中的使用
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
- Mysql事务探索及其在Django中的实践(一)
前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...
随机推荐
- java实现一个接口多个实现类,并且依次调用指定方法
接口 package cn.daenx.yhchatsdk.mytest; public interface MyInterface { /** * 返回-1,后面的实现类将不再执行 * 返回0,后面 ...
- Huawei Matebook e 2022 安装 archlinux 双系统
本文同步发布于我的网站 安装之前 wifi 名称修改为英文+数字的,以防之后没法联网 准备好 U 盘并使用 GPT 分区表写入最新的 arch 镜像. 基础安装 开机按 F2 进入 UEFI/BIOS ...
- 算法新手村 Day01
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 前言: 算法 算法的分类 几个排序算法 0.两值交换 1.选择排序 动图 思路 代码 2.冒泡排序 动图 思路 代码 3.插入排序 动图 思路 ...
- dify打造数据可视化图表
一.概述 在日常工作和学习中,我们经常需要和数据打交道.无论是分析报告.项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语. 一款能让数据可视化变得超级简单的 MCP Server, ...
- [推荐收藏]JavaScript书籍精读笔记系列导航
写在前面 去年我整理了一份「前端工程师必备书籍清单.md」,得到很多人的关注.这份清单里面的书籍大部分我都看过了,但有些知识点难免看后就忘.之前看这些书对一些重点都进行了记录,最近一段时间计划把这些重 ...
- 开源项目丨Taier1.2版本发布,新增工作流、租户绑定简化等多项功能
2022年7月26日,Taier1.2版本正式发布! 本次版本发布更新功能: 新增工作流 新增OceanBase SQL 新增Flink jar任务 数据同步.实时采集支持脏数据管理 Hive UDF ...
- pytorch入门 - 基于AlexNet神经网络实现猫狗大战
基于之前的博客 pytorch入门 - AlexNet神经网络,并借助Kaggle 的 Dogs vs Cats Redux 数据集,实现一个基于 AlexNet 的二分类模型识别猫与狗. 完整流程涵 ...
- Docker 一键安装部署 JumpServer 堡垒机
一.环境准备 bash # 更新系统 sudo apt update && sudo apt upgrade -y # 安装 Docker sudo apt install -y ...
- SQL Server 清除表TRUNCATE TABLE 提示: 因为该表正由 FOREIGN KEY 约束引用
https://blog.csdn.net/dengguawei0519/article/details/101315699 1.找到引用这个表外键名称 SELECT * FROM sys.forei ...
- Django+DRF 实战:自定义异常处理流程
一.DRF 异常处理流程 DRF 默认异常处理流程 DRF默认的异常处理流程如下: 当异常发生时,会自动调用rest_framework.views.exception_handler 函数来处理异常 ...