0

我需要在views.py 中引用正确的、特定于环境的根URL。这是情况。我正在向 Facebook 发布一张活动图片,并使用 urllib2 抓取该图片。

我需要使 url 动态调整到当前环境。我的解决方案是使用基于环境变量的条件(就像我在 settings.py 中针对特定环境的数据库配置所做的那样)。所以我有:

    # Get appropriate, environment-specific root url for urllib call below.
    try:
        if os.environ['ENV'] == 'staging':
            img_url = 'http://www.mysite.com/static/img/logo.png'
    except:
        img_url = 'http://localhost:8000/static/img/logo.png'

    graph.post(
        path = fb_event_path,
        source = urllib2.urlopen(img_url))

这适用于本地和生产(即分期),但我觉得它有点hacky。在views.py 中必须有一种更巧妙的方法来设置具有根URL 的变量。它是什么?谢谢。

4

1 回答 1

1

只需像这样隐藏您的登台/开发逻辑settings.py

DOMAIN = 'www.mysite.com'  # Production DOMAIN    

if os.environ['ENV'] != 'staging':
    DOMAIN = 'localhost:8000'  # Dev DOMAIN

或将其添加到您的末尾settings.py

from settings_local import *

DOMAIN在你的定义settings_local.py

DOMAIN = 'localhost:8000'

最后在你看来:

from settings import DOMAIN, STATIC_URL

img_url = 'http://{domain}/{static}/img/logo.png'.format(
    domain=DOMAIN, 
    static=STATIC_URL
)

graph.post(
    path = fb_event_path,
    source = urllib2.urlopen(img_url)
)
于 2013-07-24T15:05:27.570 回答