diff --git a/README.md b/README.md index 1d1c60f..fd515a5 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,6 @@ This is a [Django](http://www.djangoproject.com) project that you can use as the starting point to develop your own and deploy it on an [OpenShift](https://github.com/openshift/origin) cluster. -**NOTE:** The current master branch works with Django 2.2 LTS. The version for older Django 1.11 LTS is in [branch 1.11.x](https://github.com/sclorg/django-ex/tree/1.11.x). - The steps in this document assume that you have access to an OpenShift deployment that you can deploy applications on. ## What has been done for you @@ -54,7 +52,10 @@ To run this project in your development machine, follow these steps: 1. (optional) Create and activate a [virtualenv](https://virtualenv.pypa.io/) (you may want to use [virtualenvwrapper](http://virtualenvwrapper.readthedocs.org/)). -2. Ensure that the executable `pg_config` is available on your machine. You can check this using `which pg_config`. Otherwise, sqlite will be used. +2. Ensure that the executable `pg_config` is available on your machine. You can check this using `which pg_config`. If not, install the dependency with one of the following. + - macOS: `brew install postgresql` using [Homebrew](https://brew.sh/) + - Ubuntu: `sudo apt-get install libpq-dev` + - [Others](https://stackoverflow.com/a/12037133/8122577) 3. Fork this repo and clone your fork: @@ -119,8 +120,8 @@ Templates give you full control of each component of your application. Sometimes your application is simple enough and you don't want to bother with templates. In that case, you can let OpenShift inspect your source code and create the required components automatically for you: ```bash -$ oc new-app centos/python-36-centos7~https://github.com/sclorg/django-ex -imageStreams/python-36-centos7 +$ oc new-app centos/python-35-centos7~https://github.com/sclorg/django-ex +imageStreams/python-35-centos7 imageStreams/django-ex buildConfigs/django-ex deploymentConfigs/django-ex diff --git a/manage.py b/manage.py index 364337c..82cfa83 100755 --- a/manage.py +++ b/manage.py @@ -1,21 +1,10 @@ #!/usr/bin/env python -"""Django's command-line utility for administrative tasks.""" import os import sys +if __name__ == "__main__": + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") + + from django.core.management import execute_from_command_line -def main(): - os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') - try: - from django.core.management import execute_from_command_line - except ImportError as exc: - raise ImportError( - "Couldn't import Django. Are you sure it's installed and " - "available on your PYTHONPATH environment variable? Did you " - "forget to activate a virtual environment?" - ) from exc execute_from_command_line(sys.argv) - - -if __name__ == '__main__': - main() diff --git a/project/settings.py b/project/settings.py index 9d3186e..8855547 100644 --- a/project/settings.py +++ b/project/settings.py @@ -1,13 +1,13 @@ """ Django settings for this project. -Generated by 'django-admin startproject' using Django 2.2.12. +Generated by 'django-admin startproject' using Django 1.11.6. For more information on this file, see -https://docs.djangoproject.com/en/2.2/topics/settings/ +https://docs.djangoproject.com/en/1.11/topics/settings/ For the full list of settings and their values, see -https://docs.djangoproject.com/en/2.2/ref/settings/ +https://docs.djangoproject.com/en/1.11/ref/settings/ """ import os @@ -17,7 +17,7 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # Quick-start development settings - unsuitable for production -# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/ +# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! # The SECRET_KEY is provided via an environment variable in OpenShift @@ -76,11 +76,11 @@ TEMPLATES = [ }, ] -WSGI_APPLICATION = 'project.wsgi.application' +WSGI_APPLICATION = 'wsgi.application' # Database -# https://docs.djangoproject.com/en/2.2/ref/settings/#databases +# https://docs.djangoproject.com/en/1.11/ref/settings/#databases from . import database @@ -90,7 +90,7 @@ DATABASES = { # Password validation -# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators +# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators AUTH_PASSWORD_VALIDATORS = [ { @@ -109,7 +109,7 @@ AUTH_PASSWORD_VALIDATORS = [ # Internationalization -# https://docs.djangoproject.com/en/2.2/topics/i18n/ +# https://docs.djangoproject.com/en/1.11/topics/i18n/ LANGUAGE_CODE = 'en-us' @@ -123,7 +123,7 @@ USE_TZ = True # Static files (CSS, JavaScript, Images) -# https://docs.djangoproject.com/en/2.2/howto/static-files/ +# https://docs.djangoproject.com/en/1.11/howto/static-files/ STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') diff --git a/project/urls.py b/project/urls.py index b631d2d..5c6a8e3 100644 --- a/project/urls.py +++ b/project/urls.py @@ -1,32 +1,21 @@ -"""project URL Configuration - -The `urlpatterns` list routes URLs to views. For more information please see: - https://docs.djangoproject.com/en/2.2/topics/http/urls/ -Examples: -Function views - 1. Add an import: from my_app import views - 2. Add a URL to urlpatterns: path('', views.home, name='home') -Class-based views - 1. Add an import: from other_app.views import Home - 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') -Including another URLconf - 1. Import the include() function: from django.urls import include, path - 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) -""" from django.conf import settings +from django.conf.urls import include, url from django.contrib import admin -from django.urls import include, path from welcome.views import index, health urlpatterns = [ - path('', index, name='home'), - path('health/', health), - path('admin/', admin.site.urls), + # Examples: + # url(r'^$', 'project.views.home', name='home'), + # url(r'^blog/', include('blog.urls')), + + url(r'^$', index), + url(r'^health$', health), + url(r'^admin/', include(admin.site.urls)), ] if settings.DEBUG: import debug_toolbar urlpatterns = [ - path('__debug__/', include(debug_toolbar.urls)), + url(r'^__debug__/', include(debug_toolbar.urls)), ] + urlpatterns diff --git a/requirements.txt b/requirements.txt index b85f91f..321f32e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,5 @@ -Django>=2.2.12,<3.0 -django-debug-toolbar==2.2 -gunicorn==20.0.4 +django>=1.11,<1.12 +django-debug-toolbar==1.8 +gunicorn==19.5.0 psycopg2==2.8.5 -pytz==2020.1 -sqlparse==0.3.1 -whitenoise==5.1.0 +whitenoise==3.3.1 diff --git a/welcome/apps.py b/welcome/apps.py deleted file mode 100644 index 8b57e25..0000000 --- a/welcome/apps.py +++ /dev/null @@ -1,5 +0,0 @@ -from django.apps import AppConfig - - -class WelcomeConfig(AppConfig): - name = 'welcome' diff --git a/project/wsgi.py b/wsgi.py similarity index 58% rename from project/wsgi.py rename to wsgi.py index 88349e8..2ef9a16 100644 --- a/project/wsgi.py +++ b/wsgi.py @@ -1,16 +1,16 @@ """ -WSGI config for this project. +WSGI config for project project. It exposes the WSGI callable as a module-level variable named ``application``. For more information on this file, see -https://docs.djangoproject.com/en/2.2/howto/deployment/wsgi/ +https://docs.djangoproject.com/en/1.11/howto/deployment/wsgi/ """ import os from django.core.wsgi import get_wsgi_application -os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project.settings') +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings") application = get_wsgi_application()