在python中自定义一个终端命令
这里我们想要将一个csv文件中的数据导入到数据库中,就可以定义一个终端命令,直接一行命令就可以将我们文件中的数据导入到数据库中,特别的简单
首先,我们先创建一个py文件
management/commands/import_candidate.py
接下来,我们就可以在这个py文件中定义终端命令了
import csv
from django.core.management import BaseCommand
from interview.models import Candidate
class Command(BaseCommand):
help = '从一个CSV文件的内容中导入候选人列表,导入到数据库中'
def add_argument(self, parser):
parser.add_argument('--path', type=str)
def handle(self, *args, **kwargs):
path = kwargs['path']
with open(path, 'rt', encoding='gbk') as f:
reader = csv.reader(f, dialect='excel', delimiter=';')
for row in reader:
candidate = Candidate.object.create(
username=row[0],
city=row[1],
phone=row[2],
bachelor_school=row[3],
major=row[4],
degree=row[5],
test_score_of_general_ability=row[6],
paper_score=row[7]
)
print(candidate)
然后, 我们就可以在终端执行命令了
python manage.py import_candidate --path ~/recruitment/应聘信息.csv
终于,文件中的数据就导入到数据库中了