欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

django批量导入数据

程序员文章站 2022-06-21 14:46:29
...
# coding:utf-8
import json
import urllib.request
import time
import requests
import os
from django.conf import settings

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dongliang.settings")

'''
Django 版本大于等于1.7的时候,需要加上下面两句
import django
django.setup()
否则会抛出错误 django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.
'''
import django


if django.VERSION >= (1, 7):  # 自动判断版本
    django.setup()

from user.models import User
from operation.models import CourseComments

headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
}

response = requests.get('https://www.yojiang.cn/api/lesson/comment/query?series_id=67', headers=headers)
json_str = response.content.decode()
comment_items = json.loads(json_str)
data = comment_items['data']['items']

# 实现去重
new_data = []
new_data.append(data[0])
for dic in data:
    # print len(l4)
    # print('dic===', dic)
    k = 0
    for item in new_data:
        # print('item===', item)
        # print(dic['user']['nickname'])
        # print(item['user']['nickname'])
        # print 'item'
        if dic['user']['nickname'] != item['user']['nickname']:
            # print('名字不同')
            k = k + 1
        else:
            # print('名字相同')
            break
        if k == len(new_data):
            # print('今日')
            new_data.append(dic)

# user_list = []
for i in new_data:
    print(i['user']['nickname'])
    img_src = i['user']['portrait']
    img_name = img_src.split('/')[-2]
    t = time.localtime()
    path = os.path.join(settings.BASE_DIR, 'media/user/%d/%02d/%s.jpg' % (t.tm_year, t.tm_mon, img_name))
    # print(path)
    # 将远程数据下载到本地,第二个参数就是要保存到本地的文件名
    result = urllib.request.urlretrieve(img_src, path)
    file_name = result[0].split('/media/')[1]
#     # print(file_name)
#     user_list.append(User(username=i['user']['nickname'], user_avatar=file_name, is_active=False))
# User.objects.bulk_create(user_list)

# comment_list = []
# for i in new_data[:47]:
#     user = User.objects.filter(username=i['user']['nickname'])
#     comment_list.append(CourseComments(user_id=user[0].id, courses_id=1, comments=i['content'], status=0))
# CourseComments.objects.bulk_create(comment_list)
#
# for i in new_data[:47]:
#     comment = CourseComments.objects.filter(comments=i['content']).first()
#     comment.create_time = i['create_time']
#     comment.save()

print('完成')

相关标签: 代码