Τρίτη 7 Φεβρουαρίου 2012

Django σε Debian σε 10'

Το εν λόγω tutorial, παρέχεται ως έχει. Δεν φέρω καμία ευθύνη για λάθη ή τυχόν προβλήματα που θα αντιμετωπίσετε.

Εν συντομία τα βήματα:

1) Κατεβάζουμε το Django από εδώ.
2) Το αποσυμπιέζουμε και εκτελούμε:
sudo python setup.py install
3) Αν όλα πήγαν καλά τρέχουμε την Python από το command line και εκτελούμε:

import django

και στη συνέχεια

print django.get_version()

Εάν πήγαν όλα εντάξει θα πρέπει να μας επιστρέψει τον αριθμό έκδοσης του framework.

4) Θεωρούμε ότι έχουμε στημένο Apache και έχουμε και ένα διαθέσιμο subdomain. Εγκαθιστούμε το mod_wsgi:

apt-get install libapache2-mod-wsgi

5) Πάμε σε ένα φάκελο όπου θα δημιουργήσουμε το Django project μας. (π.χ. /home/user/python/) και εκτελούμε:

django-admin.py startproject myproject

6) Στη συνέχεια πάμε στο /etc/apache2/sites-available και φτιάχνουμε ένα νέο VirtualHost όπως το παρακάτω και το ενεργοποιούμε:



        ServerAdmin webmaster@localhost
        ServerName domain1.myservername.com

        DocumentRoot /home/user/python
        WSGIScriptAlias / /home/user/python/myproject/django.wsgi

        ErrorLog ${APACHE_LOG_DIR}/domain1-error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/domain1-access.log combined



Αφαιρέστε το ="" από το Virtualhost. Είναι bug του syntax highlighter ή του Blogger.

7) Δημιουργούμε στο φάκελο της εφαρμογής (/home/user/python/myproject) ένα αρχείο με όνομα django.wsgi και τα παρακάτω περιεχόμενα:

import os
import sys

path = '/home/user/python/'
if path not in sys.path:
    sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

8) Είμαστε σχεδόν έτοιμοι. Μένει να φτιάξουμε τα βασικά settings βάσης δεδομένων στο αρχείο settings.py, να φτιάξουμε ένα route στο αρχείο urls.py και ένα hello world page στο views.py. Σχετικά με τη βάση δεδομένων για να ξεκινήσουμε στα γρήγορα θα χρησιμοποιήσουμε μια sqlite3 που έχει και minimum configuration.

Στο αρχείο settings.py βάζουμε τις παρακάτω ρυθμίσεις:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'myproject1.sqlite3', 
        'USER': '', 
        'PASSWORD': '',   
        'HOST': '',   
        'PORT': '', 
    }
}

9) Στη συνέχεια ενεργοποιούμε τη βάση δίνοντας:
python manage.py syncdb

10) Στο αρχείο urls.py προσθέτουμε μια γραμμή ως εξής:

from django.conf.urls.defaults import patterns, include, url


urlpatterns = patterns('',
    url(r'^$', 'myproject.views.home', name='home'),
)

11) Δημιουργούμε ένα αρχείο με ονομασία views.py και προσθέτουμε τον παρακάτω κώδικα:

from django.http import HttpResponse

def home(request):
    return HttpResponse("Hello world in Django!")

12) Πάμε με τον browser στη διεύθυνση: http://domain1.myservername.com όπου θα πρέπει να εμφανίζεται το μήνυμα Hello world in Django...