使用Django中settings.py以外的设置文件

时间:2011-03-29 00:24:59

标签: django

我想在django中使用不同的设置文件 - 特别是settings_prod - 但每当我尝试使用--settings=settings_prod执行syncdb时,它都会抱怨:

python2.6 manage.py syncdb  --settings=settings_prod
Error: Can't find the file 'settings.py' in the directory containing 'manage.py'. It appears you've customized things.
You'll have to run django-admin.py, passing it your settings module.
(If the file settings.py does indeed exist, it's causing an ImportError somehow.)

我也尝试将环境变量DJANGO_SETTINGS_MODULE=settings_prod设置为无止境。

编辑:我还在我的wsgi文件中设置了环境变量,也没有结束:

import os
import sys

from django.core.handlers.wsgi import WSGIHandler

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings_prod'
application = WSGIHandler()

建议?

5 个答案:

答案 0 :(得分:13)

尝试创建settings模块。

  1. settings
  2. 所在的目录中创建一个manage.py文件夹
  3. 将您的不同设置文件放在该文件夹中(例如base.pyprod.py)。
  4. 制作__init__.py并导入您要用作默认设置的任何设置。例如,您的__init__.py文件可能如下所示:

    from base import *
    
  5. 运行项目并覆盖设置:

    $ python2.6 manage.py syncdb --settings=settings.prod
    

答案 1 :(得分:9)

我知道,无论您使用manage.py做什么,都会收到该错误,因为manage.py执行settings的相对导入:

try:
    import settings # Assumed to be in the same directory.

http://docs.djangoproject.com/en/dev/ref/django-admin/#django-admin-option---settings

  

请注意,此选项是不必要的   在manage.py中,因为它使用   来自当前项目的settings.py   默认情况下。

您应该尝试使用django-admin.py syncdb --settings=mysettings

答案 2 :(得分:0)

这将对您有所帮助:

  • 使用原始的settings.py文件创建另一个文件“setting_prod.py”。

  • 在setting_prod.py文件中记下您需要运行的设置。

  • 然后在settings.py文件中导入setting_prod.py文件。

代表。 settings.py:

VARIABLE = 1

import setting_prod

setting_prod.py

VARIABLE = 2

在settings.py文件中导入setting_prod.py文件后,VARIABLE将从“1”将新值设置为“2”。

答案 3 :(得分:0)

我们可以使用此方法设置不同的设置文件,例如,我使用不同的设置文件进行单元测试(settings_unit_test.py)。此外,我还有其他基础设施环境settings_dev.py,settings_test.py和settings_prod.py的其他设置文件。

在Windows环境中(同样可以在linux中完成)

set DJANGO_SETTINGS_MODULE=settings_unit_test
set PYTHONPATH=<path_of_your_directory_where_this_file_'settings_unit_test.py'_is_kept>

答案 4 :(得分:0)

这对我有用:

data = [mv_name,year_new,ly]
path = r'C:\Users\darsh\Scraping\Cleaned\1940-50'
filename=year_new+mv_name+'.csv'
path = path +  '\\' + year_new + '\\' + filename
print(path)
    
    
with open(path, 'w+',encoding='utf-8') as csvfile:  
# creating a csv writer object  
    csvwriter = csv.writer(csvfile)  
    
# writing the fields  
    csvwriter.writerow(fields)  
    
# writing the data rows  
    csvwriter.writerows([data])```


Output :  \n \n  दिल् च्हीन् के जाता है   \n   ओ मस्त् नज़र् वाले \n क्यू आख् चुराता है     \n \n दिल् च्हीन् के जाता है   \n ओ मस्त् नज़र् वाले \n क्यू आख् चुराता है \n दिल् च्हीन् के जाता है \n \n  शरशार्-ए-जवानी हू   \n

Output I want :  
 दिल् च्हीन् के जाता है  
   ओ मस्त् नज़र् वाले 
क्यू आख् चुराता है     
 दिल् च्हीन् के जाता है   
 ओ मस्त् नज़र् वाले 
क्यू आख् चुराता है 
 दिल् च्हीन् के जाता है 
  शरशार्-ए-जवानी हू