Django für eine Testumgebung installieren

- Veröffentlicht unter Programmieren von - Permalink

Nachdem ein MySQL-Testserver steht und auch erreichbar ist, geht es an die Installation von Django. Da auch einige hier selbst gehostete Projekte, wie z.B. Tandoor, Django benutzen und ich mich beim Cybersecurity-Kurs der Universität Helsinki mit Django beschäftigen musste, habe ich es mir auch für mein Testprojekt ausgesucht.

Die Installation geht recht schnell und davon aus, dass Python installiert ist:

python -m pip install Django

In der Standardinstallation benutzt es SQLite. Im Prinzip reicht das, da ich aber für ein selbst gehostetes Projekt bastele und ich da auch gerne mehrere User hätte, wollte ich das gleich auf richtige Beine stellen. Ich habe mich für MySQL entschieden, andere Projekte nutzen Postgress. Für Django in Verbindung mit MySQL braucht es dann noch eine zusätzliche Komponente:

python -m pip install mysqlclient

Als nächstes wechsele ich auf meinem Rechner in den Ordner, in dem das Projekt liegen soll. Dort lege ich dann ein neues an mit:

django-admin startproject testproject projectdirectory

Das erklärt sich also recht einfach. Erster Parameter ist der Name des Projekts, der Zweite der Ordner. Das Ergebnis sollte so aussehen:

├── projectdirectory
│   ├── testproject
│   │   ├── asgi.py
│   │   ├── __init__.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   └── manage.py

Jetzt müssen wir noch Django die Datenbank beibringen. Dazu loggen wir uns erst mal auf dem MySQL-Server ein. Wie das bei Eurer Installation geht, müsst Ihr sehen. Ich mache ein Terminal auf der Synology, auf der das hier zum Testen läuft, auf.

Als nächstes logge ich mich in MySQL ein:

mysql -u your_username -p

Nach der Passworteingabe lege ich eine Datenbank an:

CREATE DATABASE your_database_name;

Dann einen User für das Projekt, um nicht mit Root zu arbeiten:

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

Liegt die Datenbank direkt auf meinem Rechner, also auf dem localhost reicht das. Ansonsten muss localhost mit % ersetzt werden. Jetzt braucht der User noch die Recht für die Datenbank:

GRANT ALL PRIVILEGES ON your_database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;

In der settings.py in meinem Projektordner müssen jetzt noch die Daten der Datenbank eingetragen werden:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'your_database_name',
        'USER' : 'username',
        'PASSWORD' : 'password',
        'HOST' : 'localhost', # oder eben die IP- bzw. Serveradresse
        'PORT' : '3306', # oder eben der verwendete
    }
}

Dann testen wir mal im Projektordner:

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

Jetzt sollt ein Testserver laufen:

Django version 6.0, using settings 'testproject.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Und auf der angegebenen URL sollte im Browser eine Django-Seite auftauchen.

Schlagworte: