Das kann eigentlich alles gar nicht so schwer sein, ich glaube, du vertippst dich nur irgendwo. Es folgt ein Beispiel. Öffne eine Shell, gehe in ein Verzeichnis, in dem dein neues Projekt landen soll. Prüfe, ob du "python" aufrufen kannst (das "sma$" ist der Prompt meiner Shell und soll nicht mit eingegeben werden!):
Prüfe, ob du "django-admin.py" aufrufen kannst:
Code: Alles auswählen
sma$ django-admin.py
Type 'django-admin.py help' for usage.
sma$
Falls du "django-admin.py" nicht starten kannst, ist dieser Befehl entweder nicht in dem Suchpfad der Shell oder aber das Django-Rahmenwerk ist nicht richtig installiert und Python kann es nicht finden. Ich benutze übrigens die aktuelle SVN-Version von Django.
Lege jetzt ein Projekt "hello" an:
Es wird ein neues Verzeichnis "hello" angelegt, in dem sich 4 Dateien befinden (das "ls -l" entspricht "dir" unter Windows):
Code: Alles auswählen
sma$ ls -l hello
total 24
-rw-r--r-- 1 sma sma 0 22 Dez 20:40 __init__.py
-rwxr-xr-x 1 sma sma 546 22 Dez 20:40 manage.py
-rw-r--r-- 1 sma sma 2815 22 Dez 20:40 settings.py
-rw-r--r-- 1 sma sma 223 22 Dez 20:40 urls.py
sma$
Gehe in das Verzeichnis "hello" und lege eine neue Anwendung "app" an (unter Windows muss man das "./" weglassen):
Code: Alles auswählen
sma$ cd hello
hello sma$ ./manage.py startapp app
hello sma$ ls -l app
total 16
-rw-r--r-- 1 sma sma 0 22 Dez 20:44 __init__.py
-rw-r--r-- 1 sma sma 57 22 Dez 20:44 models.py
-rw-r--r-- 1 sma sma 26 22 Dez 20:44 views.py
hello sma$
Bearbeite "settings.py" und ändere (wir werden sqlite3 benutzen, da ich annehme, du hast Python 2.5.1, wo diese Datenbank mitgeliefert wird):
Code: Alles auswählen
DATABASE_ENGINE = 'sqlite3' # GEÄNDERT
DATABASE_NAME = 'hello.db' # GEÄNDERT
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin', # NEU HINZUGEFÜGT
'hello.app', #NEU HINZUGEFÜGT
)
Bearbeite "urls.py" und ersetze alles durch den folgenden Code:
Code: Alles auswählen
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^admin/', include('django.contrib.admin.urls')),
)
Bearbeite "app/models.py" und lege ein einfaches Modell an:
Code: Alles auswählen
from django.db import models
class Greeting(models.Model):
text = models.CharField(max_length=100)
class Admin:
pass
Lasse Django die Datenbank anlegen:
Code: Alles auswählen
hello sma$ ./manage.py syncdb
Creating table auth_message
Creating table auth_group
Creating table auth_user
Creating table auth_permission
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table django_admin_log
Creating table app_greeting
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no):
Wie du siehst, fragt Django nach einem Superuser, der Admin-Rechte bekommt. Lege den User an, indem du die Fragen beantwortest:
Code: Alles auswählen
Would you like to create one now? (yes/no): yes
Username (Leave blank to use 'sma'):
E-mail address: sma@example.com
Password:
Password (again):
Superuser created successfully.
Installing index for auth.Message model
Installing index for auth.Permission model
Installing index for admin.LogEntry model
hello sma$
Starte jetzt den Django-Entwicklungsserver:
Code: Alles auswählen
hello sma$ ./manage.py runserver
Validating models...
0 errors found
Django version 0.97-pre-SVN-6976, using settings 'hello.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Gehe mit dem Browser auf
http://localhost:8000/admin/ und melde dich als Superuser mit den eben eingegebenen Daten an. Du solltest eine Liste mit Modellen sehen, insbesondere unser definiertes "Greetings".
Lege ein neues "Greeting" mit dem Text "Hallo, Welt!" an.
Ändere jetzt "urls.py", und füge vor der Zeile mit "admin" folgende Zeile ein:
Bearbeite "app/views.py" und ersetze alles durch den folgenden Code:
Code: Alles auswählen
from django.http import HttpResponse
from hello.app.models import Greeting
def hello(request):
g = Greeting.objects.order_by('?')[0]
return HttpResponse(g.text)
Gehe mit dem Browser auf
http://localhost:8000/ und du solltest "Hallo, Welt!" lesen können.
Wenn du magst, trage weitere Grüße ein. Jedes Mal, wenn du auf die URL zugreifst, wird ein zufälliger Gruß ausgegeben.
Stefan