Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Jun 13th, 2012  |  syntax: None  |  size: 4.00 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. """Production settings and globals."""
  2.  
  3.  
  4. from os import environ
  5. from sys import exc_info
  6. from urlparse import urlparse, uses_netloc
  7.  
  8. from S3 import CallingFormat
  9.  
  10. from common import *
  11.  
  12.  
  13. # Helper lambda for gracefully degrading environmental variables:
  14. env = lambda e, d: environ[e] if environ.has_key(e) else d
  15.  
  16.  
  17. ########## EMAIL CONFIGURATION
  18. # See: https://docs.djangoproject.com/en/1.3/ref/settings/#email-backend
  19. EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
  20.  
  21. # See: https://docs.djangoproject.com/en/1.3/ref/settings/#email-host
  22. EMAIL_HOST = env('EMAIL_HOST', 'smtp.gmail.com')
  23.  
  24. # See: https://docs.djangoproject.com/en/1.3/ref/settings/#email-host-password
  25. EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD', '')
  26.  
  27. # See: https://docs.djangoproject.com/en/1.3/ref/settings/#email-host-user
  28. EMAIL_HOST_USER = env('EMAIL_HOST_USER', 'your_email@example.com')
  29.  
  30. # See: https://docs.djangoproject.com/en/1.3/ref/settings/#email-port
  31. EMAIL_PORT = env('EMAIL_PORT', 587)
  32.  
  33. # See: https://docs.djangoproject.com/en/1.3/ref/settings/#email-subject-prefix
  34. EMAIL_SUBJECT_PREFIX = '[%s] ' % SITE_NAME
  35.  
  36. # See: https://docs.djangoproject.com/en/1.3/ref/settings/#email-use-tls
  37. EMAIL_USE_TLS = True
  38.  
  39. # See: https://docs.djangoproject.com/en/1.3/ref/settings/#server-email
  40. SERVER_EMAIL = EMAIL_HOST_USER
  41. ########## END EMAIL CONFIGURATION
  42.  
  43.  
  44. ########## DATABASE CONFIGURATION
  45. # See: http://devcenter.heroku.com/articles/django#postgres_database_config
  46. uses_netloc.append('postgres')
  47. uses_netloc.append('mysql')
  48.  
  49. try:
  50.     if environ.has_key('DATABASE_URL'):
  51.         url = urlparse(environ['DATABASE_URL'])
  52.         DATABASES['default'] = {
  53.             'NAME': url.path[1:],
  54.             'USER': url.username,
  55.             'PASSWORD': url.password,
  56.             'HOST': url.hostname,
  57.             'PORT': url.port,
  58.         }
  59.         if url.scheme == 'postgres':
  60.             DATABASES['default']['ENGINE'] = 'django.db.backends.postgresql_psycopg2'
  61.         if url.scheme == 'mysql':
  62.             DATABASES['default']['ENGINE'] = 'django.db.backends.mysql'
  63. except:
  64.     print "Unexpected error:", exc_info()
  65.  
  66. #DATABASE_ROUTERS = ('settings.routers.MasterSlaveRouter',)
  67. ########## END DATABASE CONFIGURATION
  68.  
  69.  
  70. ########## CACHE CONFIGURATION
  71. # See: https://docs.djangoproject.com/en/1.3/ref/settings/#caches
  72. CACHES = {
  73.     'default': {
  74.         'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
  75.         'LOCATION': 'localhost:11211',
  76.         'TIMEOUT': 500,
  77.         'BINARY': True,
  78.         'OPTIONS': {
  79.             'tcp_nodelay': True,
  80.             'ketama': True,
  81.         }
  82.     }
  83. }
  84. ########## END CACHE CONFIGURATION
  85.  
  86.  
  87. ########## CELERY CONFIGURATION
  88. # See: http://docs.celeryproject.org/en/latest/configuration.html#broker-transport
  89. BROKER_TRANSPORT = 'amqplib'
  90.  
  91. # See: http://docs.celeryproject.org/en/latest/configuration.html#broker-url
  92. BROKER_URL = env('RABBITMQ_URL', '')
  93.  
  94. # See: http://docs.celeryproject.org/en/latest/configuration.html#celery-result-backend
  95. CELERY_RESULT_BACKEND = 'amqp'
  96.  
  97. # See: http://docs.celeryproject.org/en/latest/configuration.html#celery-task-result-expires
  98. CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 5
  99. ########## END CELERY CONFIGURATION
  100.  
  101.  
  102. ########## STORAGE CONFIGURATION
  103. # See: http://django-storages.readthedocs.org/en/latest/index.html
  104. INSTALLED_APPS += (
  105.     'storages',
  106. )
  107.  
  108. # See: http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html#settings
  109. DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
  110. STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
  111.  
  112. AWS_CALLING_FORMAT = CallingFormat.SUBDOMAIN
  113.  
  114. AWS_ACCESS_KEY_ID = env('AWS_ACCESS_KEY_ID', '')
  115. AWS_SECRET_ACCESS_KEY = env('AWS_SECRET_ACCESS_KEY', '')
  116. AWS_STORAGE_BUCKET_NAME = env('AWS_STORAGE_BUCKET_NAME', '')
  117.  
  118. STATIC_URL = 'https://s3.amazonaws.com/%s/' % AWS_STORAGE_BUCKET_NAME
  119. ########## END STORAGE CONFIGURATION
  120.  
  121.  
  122. ########## WEBSERVER CONFIGURATION
  123. # See: http://gunicorn.org/
  124. INSTALLED_APPS += (
  125.     'gunicorn',
  126. )
  127. ########## END WEBSERVER CONFIGURATION
  128.  
  129.  
  130. ########## SECRET KEY CONFIGURATION
  131. SECRET_KEY = env('SECRET_KEY', '')
  132. ########## END SECRET KEY CONFIGURATION