Django: Difference between revisions

From lippmann wiki
Jump to navigation Jump to search
Line 19: Line 19:
==example apache config==
==example apache config==


Below apache config works with python 3 and the debian django repository (specifically, the static alias is on a separate location). Outside of that in my example the django instance zealot is stored in /var/django/zealot.
Below apache config works with python 3 and the debian django repository (specifically, the static alias is on a separate location). Outside of that in my example the django instance named zealot is stored in /var/django/zealot.


<pre><VirtualHost *:80>
<pre><VirtualHost *:80>
Line 45: Line 45:


</VirtualHost></pre>
</VirtualHost></pre>


==example settings.py==
==example settings.py==

Revision as of 16:48, 20 June 2015

installing django in debian jessie with python3, mysql, apache2 and mod-wsgi

Packages:

aptitude install python3-django python3 libapache2-mod-wsgi-py3 python3-mysql.connector apache2

(optionally add a local mysql server if you need one locally)

aptitude install mysql-server

Make sure the wsdi module is enabled"

dpkg-reconfigure libapache2-mod-wsgi-py3

Create workspace:

mkdir -p /var/django && cd /var/django
/usr/lib/python3/dist-packages/django/bin/django-admin.py startproject zealot .

example apache config

Below apache config works with python 3 and the debian django repository (specifically, the static alias is on a separate location). Outside of that in my example the django instance named zealot is stored in /var/django/zealot.

<VirtualHost *:80>
ServerName fuego.lippmann.us
Alias /media/ /var/django/media/
Alias /static/ /usr/share/python-django-common/django/contrib/admin/static/

<Directory /var/django/static>
Require all granted
</Directory>

<Directory /var/django/media>
Require all granted
</Directory>

 WSGIDaemonProcess zealot python-path=/var/django:/usr/lib/python3.4
 WSGIProcessGroup zealot
 WSGIScriptAlias / /var/django/zealot/wsgi.py

 <Directory /var/django/zealot/>
 <Files wsgi.py>
 Require all granted
 </Files>
 </Directory>

</VirtualHost>

example settings.py

In my example /var/django/zealot holds this file and the project is named zealot. Adjust the database and other parameters (timezone, domain, etc.) according to your own environment.

import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
SECRET_KEY = 'key'
DEBUG = False
TEMPLATE_DEBUG = False
ALLOWED_HOSTS = [
            '.lippmann.us.',  # Allow domain and subdomains
        ]
CSRF_COOKIE_DOMAIN = ".lippmann.us"
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)
MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF = 'zealot.urls'
WSGI_APPLICATION = 'zealot.wsgi.application'
DATABASES = {
    'default': {
        'ENGINE': 'mysql.connector.django',
        'NAME': 'zealot',
        'USER': 'user',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'America/Los_Angeles'
USE_I18N = True
USE_L10N = True
USE_TZ = True
STATIC_URL = '/static/'