django 使用中会常用到像 python manage.py runserver、python manage.py makemigrations、python manage.py migrate 这种命令。我们也可以自定义这种命令方便管理。

一、创建文件

  1. 在app内创建一个名字为:management文件夹,文件夹名字是固定的不可更改。
  2. 在management文件夹里面创建名为:commands的文件夹,同样是固定名称。
  3. 在commands文件夹下先创建一个__init__.py的空文件,再创建名为:demo.py文件(启动的时候就是根据该文件名进行启动的,注意:commands目录内都包含__init__.py文件)

二、编辑文件

打demo.py 文件,写入以下代码:

from django.core.management.base import CommandError, BaseCommand
from django.db import modelsclass Command(BaseCommand):help = '每日凌晨对当天数据库进行更新'  # command功能作用简介def add_arguments(self, parser):  # 用来接收可选参数的( 如果没有参数该方法可以不写 )parser.add_argument('offset', type=int, help='天数转移量')def handle(self, *args, **options):  # 主处理程序print('hello world')

这里面需要定义一个Command类(固定名称不可更改)并继承baseCommand类或其子类。

这样就可以用:python manage.py demo 123 来执行demo.py中的代码了。

三、写个小样

下面写一个从csv表格中批量导入文章到数据库中的小样。

import csvfrom django.core.management.base import BaseCommand
from blog.models import Articleclass Command(BaseCommand):help = '从一个CSV文件的内容中读取文章内容批量导入到数据库中'  # command功能作用简介def add_arguments(self, parser):  # 用来接收可选参数的( 如果没有参数该方法可以不写 )parser.add_argument('--path', type=str, help='路径')def handle(self, *args, **kwargs):  # 主处理程序path = kwargs['path']with open(path, 'rt', encoding='gbk') as f:     # 这根据情况指定gbk或utf-8格式防止乱码reader = csv.reader(f, dialect='excel', delimiter=';')      # 用; 做为分割符,如果是,可以不指定for row in reader:print(row[0])   # 打印第一列print(row[1])   # 打印第二列# 这里可以根据情况导入数据库中article = Article.objects.create(title=row[1],body=row[2],)print(article)

执行命令 python manage.py demo --path ./文档1/file.csv 命令可看到效果。

django management扩展 manage.py 创建自定义命令相关推荐

  1. linux新建自定义命令,Linux 创建自定义命令

    Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用"alias"命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. ...

  2. 学习Python的Django执行python manage.py startapp myApp创建应用出现的问题

    最近在学习python的Django,跟着视频操作却也出现问题,创建应用的时候在终端输入python manage.py startapp myApp 出现了报错,报错如下: 报错信息有点多,但最后俩 ...

  3. django 清理缓存,解决manage.py没有clear_cache命令

    解决方法 首先安装django-extensions: pip install django-extensions 然后把django-extensions加入到setting.py文件下的INSTA ...

  4. django1.4.9 pythoon manage.py --help 子命令解析

    1.runserver 用于在本机启动一个轻量级的Web server.默认情况下,这个server会在127.0.0.1上监听8000端口.你也可以传入参数来改变默认配置. 如果你并非特权用户,那么 ...

  5. django 运行python manage.py sqlall books 时报错 app has migration

    出现这个问题的原因是版本之前的不兼容,我用的django版本是1.8.6 而 这条python manage.py sqlall books 是基于django1.0版本的. 在django1.8.6 ...

  6. Mininet--topo类型-py创建自定义拓扑网络

    Mininet网络划分 Minnet可以创建多种拓扑网络,主要分为两类,一类是自动型,是指Mininet自带的拓扑类型, 通过--topo参数来指定,分别是linear.minimal.reverse ...

  7. 关于解决django框架 python manage.py问题及python manage.py startapp xxx问题

    问题原因: 问题一: (djangos) C:\Users\Administrator\django02>python manage.py Traceback (most recent call ...

  8. Django >python manage.py migrate报错:(1064, “You have an error in your SQL syntax

    执行如下命令时报错(迁移数据库和表结构): python manage.py makemigrations python manage.py migrate 报错信息: django.db.migra ...

  9. django manage.py扩展自定义命令

    # django manage.py扩展自定义命令 环境: mac django1.10.3 在实际的项目开发过程中,我们可能要执行某脚本初始化数据库,可能要启动多个服务,比如启动celery,red ...

最新文章

  1. 2022-2028年中国涤纶市场投资分析及前景预测报告
  2. CentOS7(64位)下运行IPython3出错解决办法
  3. intel服务器主板芯片,英特尔® 服务器主板 S2600CW2SR
  4. python不能处理excel文件-别以为Python的pandas不能处理非规范Excel数据
  5. 在python子程序中、使用关键字_Python 的控制和函数
  6. Java CountDownLatch的两种常用场景
  7. 移动最小二乘_最小移动以形成弦
  8. SpringCloud 从菜鸟到大牛之四 应用通信 Feign Ribbon
  9. jpa oracle 传参int类型判空_企业级Java开发之图解JPA核心构件
  10. hdu 5094 Maze bfs
  11. 7.2 GaussianMixture实战
  12. [Swift]LeetCode306. 累加数 | Additive Number
  13. 23_使用dtree展示所有分类
  14. android节日接口,节假日api及其整合
  15. WPF 委托和事件实现子窗口回调函数, 实时刷新主窗口控件
  16. Docker中定制镜像的两种方法
  17. python+playwright 学习-17.模拟手机浏览器测试
  18. java 浏览器 qq_Qq浏览器通用版移动QQ浏览器v2.1Java通用版下载
  19. 读书笔记《Linux那些事儿之我是USB》
  20. 初始化 Microsoft Visual SourceSafe 源代码管理提供程序时失败问题处理

热门文章

  1. 删除磁盘上的表空间后再删除数据库中的表空间——ORA-01549:表空间非空,请使用including contents选项
  2. 关于stm32定时器定时周期计算
  3. 学生成绩排名及管理系统c语言,学生成绩管理系统__C语言版.doc
  4. 临时停车自动拨号发短信源码,亲测可用
  5. 沙特CB认证如何申请,流程怎样
  6. ERDAS IMAGINE 2015 AOI文件转为矢量文件SHP
  7. 3D、4D、5D区别?
  8. 一个80年小子的创业道理,和所有准备创业或者正在创业的兄弟们共享
  9. en-win7-x64-sp1 + vs2015.3 + Lenovo Z470 装机镜像
  10. RS232 485 CAN端口浪涌、脉冲保护电路