Python 在生产或开发模式下运行Django,让变量依赖于它
我正在处理一个Django项目,在我的一个功能中,我将用户重定向到一个重定向url,这在生产和开发中是不同的。当项目在生产环境中运行时,它将使用wsgi.py文件和gunicorn启动服务器。在开发时,我使用Python 在生产或开发模式下运行Django,让变量依赖于它,python,django,Python,Django,我正在处理一个Django项目,在我的一个功能中,我将用户重定向到一个重定向url,这在生产和开发中是不同的。当项目在生产环境中运行时,它将使用wsgi.py文件和gunicorn启动服务器。在开发时,我使用python manage.py runserver启动服务器。所以我想我可以初始化环境变量'DEVELOPMENT\u MODE'='FALSE',然后在我有重定向url的py文件中计算os.environ.get('DEVELOPMENT\u MODE'),因为这个环境变量不会用pyth
python manage.py runserver
启动服务器。所以我想我可以初始化环境变量'DEVELOPMENT\u MODE'='FALSE'
,然后在我有重定向url的py文件中计算os.environ.get('DEVELOPMENT\u MODE')
,因为这个环境变量不会用python manage.py runserver
初始化。但这似乎不起作用,我正在寻找解决方案。这是我在Django的第一个项目
环境变量在wsgi.py中设置如下:
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'spotifycluster.settings')
os.environ.setdefault('DEVELOPMENT_MODE', 'TRUE')
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
import os
CLIENT_ID = "xxxx"
CLIENT_SECRET = "xxxx"
if os.environ.get('DEVELOPMENT_MODE') == 'TRUE':
REDIRECT_URI = 'http://127.0.0.1:8000/spotify/redirect'
URL = 'http://127.0.0.1:8000/'
else:
REDIRECT_URI = 'http://nameless-taiga-02413.herokuapp.com/spotify/redirect'
URL = 'http://nameless-taiga-02413.herokuapp.com/'
然后credentials.py,其中存在需要依赖于env var的变量,如下所示:
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'spotifycluster.settings')
os.environ.setdefault('DEVELOPMENT_MODE', 'TRUE')
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
import os
CLIENT_ID = "xxxx"
CLIENT_SECRET = "xxxx"
if os.environ.get('DEVELOPMENT_MODE') == 'TRUE':
REDIRECT_URI = 'http://127.0.0.1:8000/spotify/redirect'
URL = 'http://127.0.0.1:8000/'
else:
REDIRECT_URI = 'http://nameless-taiga-02413.herokuapp.com/spotify/redirect'
URL = 'http://nameless-taiga-02413.herokuapp.com/'
我导入重定向URI和URL并在此处使用它们:
def get(self, request, format=None):
url = Request('GET', 'https://accounts.spotify.com/authorize', params={
'client_id': CLIENT_ID,
'redirect_uri': REDIRECT_URI,
'scope': scope,
'response_type': 'code',
}).prepare().url
及
有时会使用
settings.py中的DEBUG
。您可以创建重定向到另一个视图的视图,具体取决于该设置。您是否可以显示您的函数以及在某些环境中要重定向到的示例URL?当然可以。我详细阐述了我的问题。这些是URL吗;你的django应用程序运行在哪里?或者这些是django应用程序外部的URL?这些URL是应用程序运行的位置。因此,在dev中的localhost URL和prod.Django中的Heroku URL上,您都会注意到这一点,通常您不会声明完整的URL,您只需声明并说出其中一个URL的名称,,django将负责为您构建URL。我如何将该值导入另一个py文件?从django.conf导入设置
然后设置。调试
-