问题描述
例如:我们在写Django项目的时候,会从数据库里面拿数据,但是数据库里面的数据怎么来?如果数据简单,我们可以用Navicat 图形化工具,简单的进行数据的增删改查,但是如果是复杂的数据要从网上爬取的数据怎么办呢?有的人会重新创造一个程序,专门用来爬取数据,但是不推荐不建议这样做,原因有两点
一.麻烦。明明可以一个程序完成,没必要分成两个程序完成
二.数据库可能会出错。我们都知道,Django是通过模型类来关联数据库,在model.py创建的数据库前面会加上项目的名称如下图所示(我这里的项目名称是app根据每个人的项目不同而不同):
一不注意就会忘记还有一个前缀,到时候存入数据库就可能写错。
所以Django项目中有一个专门可以运行其他程序的地方,不影响主程序的运行,对数据的增删改查也可以用模型类来 解决,非常方便,接下来我来介绍一下如何写
一、程序的位置应该放在哪?
在你的项目程序目录下创造一个名为management的目录,里面包含一个名为commands的子目录。在commands目录下创建一个Python文件,例如命名为import_data.py(名字随便取),然后在该文件中编写上述自定义的管理命令如下图所示:
二、里面的程序要注意的点
1.首先保证这个程序所在的程序项目已经在setting.py注册成功了
代码如下(示例):
INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "app" ]
2.固定的模板
代码如下(示例):
from django.core.management import BaseCommand class Command(BaseCommand): help = 'Import data from existing data source' def handle(self, *args, **options): print("hello word")# handle的方法里可以写我们想要执行的程序
我们首先要引用BaseCommand这给库,千万别忘了,固定的模板就是这样写的,当你了解源码流程可以改,不过建议新手小白直接复制粘贴就可以了
3.运行方式
终端运行python manage.py 程序名称,如(我这里的程序名称是import_data)
python manage.py import_data
总结
以上就是今天要讲的内容,本文仅仅简单介绍了如何使用,还有其他的更加详细的用法,可以阅读源码