Django ist ein Python-basiertes Web-Framework, das den Model-Template-Views (MTV) folgt. Django ist ein beliebtes Tool für die Webentwicklung, da es eine schnelle Entwicklung von Websites ermöglicht.
In diesem Tutorial zeigen wir Ihnen, wie Sie Django einrichten. Wir zeigen Ihnen die bevorzugte Produktionskonfiguration mit virtueller Umgebung.
Wenn Sie nach einem VPS suchen Anbieter zum Ausführen Ihrer Anwendungen, können Sie Interserver-Angebote prüfen.
Beginnen wir mit der Einrichtung.
1 1. Aktualisierung des Systems
sudo apt update -y && apt upgrade -y
2 2. Installation von pip und Virtual Environment
Überprüfen Sie zuerst die Python3-Version Ihres Systems.
# python3 -V
Python 3.8.10
Lassen Sie uns PIP und Venv installieren.
sudo apt install python3-pip python3-venv
3 3. Erstellen Sie ein Projektverzeichnis
Lassen Sie uns ein Projektverzeichnis erstellen.
sudo mkdir /var/www/django
Wechseln Sie in das Projektverzeichnis.
cd /var/www/django
Lassen Sie uns eine virtuelle Umgebung erstellen.
python3 -m venv django_venv
Aktivieren Sie die virtuelle Umgebung.
source django_venv/bin/activate
4 4. Installation von Django 3.2
Wir werden Django mit PIP installieren.
(django_venv) pip install django==3.2
Überprüfen Sie die Installation.
(django_venv) django-admin --version
Output:
3.2
5 5. Erstellen eines Projekts
Lassen Sie uns ein Django-Projekt erstellen.
HINWEIS: Bitte vergessen Sie nicht, den Punkt (.) am Ende einzufügen, um zu viele verschachtelte Verzeichnisse zu vermeiden.
(django_venv) django-admin startproject myproject .
Nach dem Erstellen des Projekts müssen wir die Datenbank migrieren. Aber zuerst müssen wir eine MySQL/MariaDB-Datenbank erstellen, bevor wir die Migration durchführen. Wir sind davon ausgegangen, dass Sie bereits einen laufenden MySQL/MariaDb-Dienst haben.
Lassen Sie uns die Datenbank erstellen.
MariaDB [(none)]> create database django;
MariaDB [(none)]> grant all privileges on django.* to 'django'@'localhost' identified by 'mypassword';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;
Hinweis :Bitte vergessen Sie nicht, das Passwort zu ändern mit dem Passwort Ihrer Wahl.
Lassen Sie uns settings.py aktualisieren .
sudo nano myproject/settings.py
Die in Django eingestellte Standarddatenbank ist SQLite. Da wir eine Produktionsseite einrichten, werden wir sie aktualisieren, um MySQL/MariaDB zu verwenden.

Lassen Sie uns es mit unten aktualisieren:
DATABASES = {
'default': {
'ENGINE' : 'django.db.backends.mysql',
'NAME' : 'django', # database name
'USER' : 'django', # Mysql user
'PASSWORD': 'mypassword', # Mysql password
'HOST' : 'localhost',
'PORT' : '3306',
}
}
Bevor wir die Migration durchführen, lassen Sie uns zuerst mysql-config installieren .
Wenn Sie MySQL verwenden, führen Sie diesen Befehl aus.
sudo apt-get install libmysqlclient-dev
Wenn Sie MariaDB verwenden, führen Sie dies aus.
sudo apt-get install libmariadbclient-dev
Lassen Sie uns dann den Python-MySQL-Treiber installieren.
(django_venv) pip install mysqlclient
Lassen Sie uns nun die Migration ausführen.
(django_venv) python3 manage.py migrate
Output:
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length... OK
Applying auth.0011_update_proxy_permissions... OK
Applying auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
6 6. Zugriff auf die Django-App
Bevor wir auf unsere Django-App zugreifen können, müssen wir unsere IP-Adresse oder Domain zu den ALLOWED_HOSTS in der settings.py hinzufügen . Lassen Sie uns settings.py aktualisieren.
sudo nano myproject/settings.py
Gehen Sie zu „ALLOWED_HOSTS ”-Abschnitt.
ALLOWED_HOSTS = ['your_server_ip', 'domain.com']
Aktualisieren Sie „your_server_ip “ und „domain.com ” mit Ihrer IP-Adresse und Domain dann speichern.
Bevor wir auf unsere Django-App zugreifen können, müssen wir diesen Befehl ausführen.
python3 manage.py runserver 0.0.0.0:8000
Sie können jetzt unter http://IPaddress:8000 auf Ihre Django-App zugreifen

Lassen Sie uns einen Admin-Benutzer für unser Projekt erstellen
(django_venv) python3 manage.py createsuperuser
Nachdem Sie den Befehl ausgeführt haben, geben Sie Ihren Admin-Benutzernamen, Ihre E-Mail-Adresse und Ihr Passwort ein.
7 7. Einrichten der Produktion mit Apache und WSGI
Um die Produktion einzurichten, werden wir Apache und das Apache mod_wsgi-Modul installieren.
sudo apt-get install apache2 libapache2-mod-wsgi-py3
Lassen Sie uns einen virtuellen Host erstellen.
sudo nano /etc/apache2/sites-available/django.conf
Fügen Sie dem virtuellen Host Folgendes hinzu.
Hinweis:Vergessen Sie nicht, die domain.com zu ersetzen mit eigener Domain.
<VirtualHost *:80>
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/django
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /static/ /var/www/django/myproject/static/
<Directory /var/www/django/myproject/static>
Require all granted
</Directory>
Alias /media/ /var/www/django/myproject/media/
<Directory /var/www/django/myproject/media>
Require all granted
</Directory>
<Directory /var/www/django/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess mydjangoproject python-path=/var/www/django python-home=/var/www/django/django_venv
WSGIProcessGroup mydjangoproject
WSGIScriptAlias / /var/www/django/myproject/wsgi.py
</VirtualHost>
Lassen Sie uns den virtuellen Host aktivieren:
sudo a2ensite django.conf
Starten Sie den Apache-Webserver neu.
sudo systemctl restart apache2
Lassen Sie uns nun die settings.py erneut bearbeiten damit unser Webserver die statischen Dateien bereitstellen kann.
sudo nano myproject/settings.py
Fügen Sie oben in der Datei hinzu:
import os
Gehen Sie dann zum “ statische Dateien “ Abschnitt und stellen Sie sicher, dass Sie diese Werte hinzufügen:
PROJECT_ROOT =os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT =os.path.join(PROJECT_ROOT, ‚statisch‘)
Es sollte wie unten aussehen.
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/3.2/howto/static-files/
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
Lassen Sie uns nun alle statischen Inhalte sammeln.
(django_venv) python3 manage.py collectstatic
Output:
128 static files copied to '/var/www/django/myproject/static'.
Apache-Dienst neu starten:
sudo systemctl restart apache2
Damit ist die Produktionsstätte eingerichtet. Sie können jetzt mit Ihrer Domain unter http://domain.com auf Ihre Django-App zugreifen. Wenn Sie Ihre Website sichern und ein SSL-Zertifikat installieren möchten, lesen Sie diesen Artikel.

8 Fazit
Sie haben gelernt, wie Sie Django 3.2 auf Ubuntu 20.04 mit Apache und WSGI installieren. Wenn Ihnen dieser Artikel gefällt, gefallen Ihnen vielleicht auch unsere anderen Artikel auf dieser Seite.