我一直想弄清楚如何導出我的數據庫作爲CSV格式的文件以某種格式(做數據轉儲到JSON和轉換爲CSV不會或將採取時間太長)。目前我有一個腳本只是遍歷每個對象並將相關信息寫入文件。但是,對於一些奇怪的原因,Django的抱怨拋出:Django扔錯誤配置錯誤無論我做什麼
Traceback (most recent call last):
File "csv_export.py", line 4, in <module>
from models import Patient, Nurse, Doctor, HospitalAdmin
File "/home/ian/Documents/swen261/master_project/HealthNet/main_site/models.py", line 2, in <module>
from django.contrib.auth.models import User
File "/usr/local/lib/python2.7/dist-packages/django/contrib/auth/__init__.py", line 7, in <module>
from django.middleware.csrf import rotate_token
File "/usr/local/lib/python2.7/dist-packages/django/middleware/csrf.py", line 14, in <module>
from django.utils.cache import patch_vary_headers
File "/usr/local/lib/python2.7/dist-packages/django/utils/cache.py", line 26, in <module>
from django.core.cache import caches
File "/usr/local/lib/python2.7/dist-packages/django/core/cache/__init__.py", line 34, in <module>
if DEFAULT_CACHE_ALIAS not in settings.CACHES:
File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 48, in __getattr__
self._setup(name)
File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 42, in _setup
% (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
下面是腳本:
# exports db as a csv file
import sys, os, django
sys.path.append('~/Documents/swen261/masterProject/HealthNet/main_site/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'main_site.settings'
django.setup()
from models import Patient, Nurse, Doctor, HospitalAdmin
print("Starting DB export script...\n")
print("Creating csv file 'csv_output.csv'...\n")
with open('csv_output.csv', 'w+') as file:
print("Writing out Patients...\n")
# formatting got a little screwed here, the rest below this should be indented.
for p in Patient.objects.all():
file.write("%s,%s,%s,%s,%s,%s,%s,%s,%s,\n"
% ("Patient", p.user.username, p.user.password, p.user.first_name, p.user.last_name, p.hospital.name, p.insurance_provider, p.insurance_id, "nil"))
print("Writing out Doctors...\n")
for d in Doctor.objects.all():
file.write("%s,%s,%s,%s,%s,%s,%s,%s,%s,\n"
% ("Doctor", d.user.username, d.user.password, d.user.first_name, d.user.last_name, d.hospital.name, "nil","nil","nil"))
print("Writing out Nurses...\n")
for n in Nurse.objects.all():
file.write("%s,%s,%s,%s,%s,%s,%s,%s,%s,\n"
% ("Nurse", n.user.username, n.user.password, n.user.first_name, n.user.last_name, n.hospital.name, "nil", "nil", "nil"))
print("Writing out Hospital Admins...\n")
for ha in HospitalAdmin.objects.all():
file.write("%s,%s,%s,%s,%s,%s,%s,%s,%s,\n"
% ("HospitalAdmin", ha.user.username, ha.user.password, ha.user.first_name, ha.user.last_name, ha.hospital.name, "nil", "nil", "nil"))
print("Finished creating csv.\n")
我不知道它爲什麼這樣做或如何解決它。問題似乎在進口,儘管我可以合法地在視圖文件中執行此操作。所有其他問題相同的人似乎都以不同的方式得到了答案,而且我根據他們的答案還沒有弄清楚。
buehler?我試着改變了一些東西,它仍然會在整個地方拋出錯誤的配置錯誤。 – Ian