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('完成')
上一篇: jquery实现图片的本地预览
下一篇: JAVA SE Method(方法)