From f128cb8a3b709b0f4f70622ac2a62983495f898f Mon Sep 17 00:00:00 2001 From: Rafa Miranda Date: Wed, 28 Jun 2017 05:14:49 -0500 Subject: [PATCH] Modularize settings --- README.md | 2 +- home/urls.py | 1 - manage.py | 2 +- smsuela/settings/__init__.py | 0 smsuela/{settings.py => settings/common.py} | 13 +++++++------ smsuela/settings/local.py | 8 ++++++++ smsuela/settings/production.py | 9 +++++++++ smsuela/urls.py | 5 ++++- smsuela/wsgi.py | 6 +++++- 9 files changed, 35 insertions(+), 11 deletions(-) create mode 100644 smsuela/settings/__init__.py rename smsuela/{settings.py => settings/common.py} (92%) create mode 100644 smsuela/settings/local.py create mode 100644 smsuela/settings/production.py diff --git a/README.md b/README.md index acd2034..8701154 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Web application to send SMS to multiple phone numbers with Twilio. **Twilio active account required** -You need to generate your Twilio credentials in the `settings.py` file +You need to generate your Twilio credentials in the `common.py` file or in your `ENV_VARS`, also you need a `SECRET_KEY` for your project. Install all the requirements with: diff --git a/home/urls.py b/home/urls.py index 07f631a..a1e4b39 100644 --- a/home/urls.py +++ b/home/urls.py @@ -1,6 +1,5 @@ from django.conf.urls import url from . import views -from django.contrib.auth.decorators import login_required urlpatterns = [ diff --git a/manage.py b/manage.py index 262a104..cbf1b09 100755 --- a/manage.py +++ b/manage.py @@ -3,7 +3,7 @@ import sys if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "smsuela.settings") + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "smsuela.settings.local") try: from django.core.management import execute_from_command_line except ImportError: diff --git a/smsuela/settings/__init__.py b/smsuela/settings/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/smsuela/settings.py b/smsuela/settings/common.py similarity index 92% rename from smsuela/settings.py rename to smsuela/settings/common.py index 359e086..ae25edc 100644 --- a/smsuela/settings.py +++ b/smsuela/settings/common.py @@ -1,15 +1,14 @@ import os from django.core.wsgi import get_wsgi_application -import dj_database_url -from twilio.rest import Client BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) SECRET_KEY = os.environ["SECRET_KEY"] -DEBUG = True +DEBUG = False ALLOWED_HOSTS = ['*'] + SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') INSTALLED_APPS = [ @@ -63,8 +62,6 @@ } } -if os.environ["DEBUG"] == "False": - DATABASES['default'] = dj_database_url.config() AUTH_PASSWORD_VALIDATORS = [ { @@ -98,9 +95,13 @@ USE_TZ = True STATICFILES_DIRS = [ - os.path.join(BASE_DIR, 'static') + os.path.join(BASE_DIR, '../static') ] STATIC_URL = '/static/' STATIC_ROOT = 'staticfiles' + +MEDIA_ROOT = 'media' + +MEDIA_URL = '/media/' diff --git a/smsuela/settings/local.py b/smsuela/settings/local.py new file mode 100644 index 0000000..8cab420 --- /dev/null +++ b/smsuela/settings/local.py @@ -0,0 +1,8 @@ +"""" +Local settings +- Run in Debug mode +""" + +from .common import * + +DEBUG = True \ No newline at end of file diff --git a/smsuela/settings/production.py b/smsuela/settings/production.py new file mode 100644 index 0000000..26a4251 --- /dev/null +++ b/smsuela/settings/production.py @@ -0,0 +1,9 @@ +""" +Production settings +- Set secret key from environment variable +""" + +from .common import * +import dj_database_url + +DATABASES['default'] = dj_database_url.config() \ No newline at end of file diff --git a/smsuela/urls.py b/smsuela/urls.py index 4fd99c5..d6b1c08 100644 --- a/smsuela/urls.py +++ b/smsuela/urls.py @@ -1,10 +1,13 @@ from django.conf.urls import url, include from django.contrib import admin from django.contrib.auth import views as auth_views +from django.conf import settings +from django.conf.urls.static import static + urlpatterns = [ url(r'^login/$', auth_views.LoginView.as_view(redirect_authenticated_user=True), name='login'), url(r'^logout/$', auth_views.logout, {'next_page': '/login'}, name='logout'), url(r'^admin/', admin.site.urls), url(r'^', include('home.urls', namespace="home")), -] +] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) diff --git a/smsuela/wsgi.py b/smsuela/wsgi.py index 50b5ff5..1287f73 100644 --- a/smsuela/wsgi.py +++ b/smsuela/wsgi.py @@ -11,7 +11,11 @@ from django.core.wsgi import get_wsgi_application from dj_static import Cling +from whitenoise.django import DjangoWhiteNoise -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "smsuela.settings") + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "smsuela.settings.production") application = Cling(get_wsgi_application()) +application = DjangoWhiteNoise(application) +