import os
import sys
import datetime
sys.path.append(os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'project name'))
os.environ['DJANGO_SETTINGS_MODULE'] = 'project name.settings'
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
import django
django.setup()
from <app name>.models import Ticket
import openpyxl
# 数据导出
def excel_export():
list_obj = Ticket.objects.all()[1:10]
ws = openpyxl.Workbook()
w = ws.create_sheet(index=0)
ticket_titel = list_obj[0].__dict__
excel_titel = []
filed_count = 1
for field in ticket_titel:
if field == '_state':
continue
w.cell(1, filed_count).value = field
excel_titel.append(field)
filed_count += 1
line_count = 2
for ticket in list_obj:
print(ticket.id)
ticket_dict = ticket.__dict__
filed_count = 1
for field in excel_titel:
try:
w.cell(line_count, filed_count).value = str(ticket_dict[field])
filed_count += 1
except Exception as e:
print(e)
line_count += 1
ws.save("test.xlsx")
# 数据导入
def excel_import():
ws = openpyxl.load_workbook(filename='~/Downloads/test.xlsx')
sheetnames = ws.get_sheet_names()
sheet = ws.get_sheet_by_name(sheetnames[0])
max_row = sheet.max_row
max_column = sheet.max_column
excel_titel = []
for column in range(1, max_column + 1):
excel_titel.append(sheet.cell(row=1, column=column).value)
for row in range(2, max_row + 1):
ticket = {}
for column in range(0, max_column):
ticket.setdefault(excel_titel[int(column)])
ticket[excel_titel[int(column)]] = sheet.cell(row=row, column=column+1).value
print(ticket['id'])
try:
ticket_new = Ticket.objects.create(
id=ticket['id']
)
if ticket['ip'] and ticket['ip'] != 'None':
ticket_new.ip = ticket['ip']
ticket_new.save()
except Exception as e:
print(e)
无法使用mysqldump的时候,通过django shell导出及导入数据库数据
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。