Django
Siehe auch
Installation und Konfiguration
Django benötigt Python 3.6+.
dnf -y install python3-pip
Virtuelles Environment erzeugen, z.B. django-venv
:
python3 -m venv django-venv
source django-venv/bin/activate
Django und einige Module im Virtual Environment installieren:
pip install --upgrade pip
pip install django django-appconf requests
Ein neues Projekt erstellen:
django-admin startproject mvc
cd mvc/
Django mit MariaDB, Allow access from everywhere:
nano mvc/settings.py
ALLOWED_HOSTS = [ '*' ]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mvc',
'USER': 'mvc-user',
'PASSWORD': 'password',
'HOST': '10.80.32.60',
'PORT': '3306',
}
}
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver 0.0.0.0:80
Später genügt:
source django-venv/bin/activate
cd mvc/
python manage.py runserver 0.0.0.0:80
Reset Migrations
Frische Datenbank gewünscht?
find . -path "*/migrations/*.py" -not -name "**init**.py" -delete
find . -path "*/migrations/*.pyc" -delete
Anschliessend Datenbank löschen.
Datenbank neu erzeugen:
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
Systemd Unit-File
Wenn man Django direkt durch Python statt durch einen Webserver ausführen lassen möchte (also per python manage.py runserver 0.0.0.0:8000
), kann man sich folgendes Unit-File erstellen:
/etc/systemd/system/django.service
[Unit]
Description=My Django App
Requires=network.target
After=network.target syslog.target
[Service]
ExecStart=/bin/bash -c 'cd /path/to/venv; source django-venv/bin/activate; cd /path/to/django; python manage.py runserver 0.0.0.0:8000'
KillSignal=SIGQUIT
NotifyAccess=all
Restart=always
RestartSec=10
RuntimeDirectory=/path/to/django
StandardError=syslog
TimeoutStartSec=0
Type=simple
[Install]
WantedBy=multi-user.target
Built on 2023-09-21