installeer je Django Web Applicatie Framework op Debian 10

Django is een open-source web applicatie raamwerk dat je helpt om dynamische websites en applicaties te ontwikkelen. Het is veilig, snel en stabiel, waardoor je met minder codering een complexe website kunt maken. Er zijn verschillende manieren om Django op je systeem te installeren. Je kunt het installeren met de Debian repository, met PIP of uit de Git repository. Je kunt elke methode kiezen, afhankelijk van je behoeften. Django stelt je in staat een project te maken in Python virtuele omgevingen. Op deze manier kun je meerdere Django omgevingen in een enkel systeem maken.

In deze zelfstudie leren we hoe je het Django web raamwerk met PIP op Debian 10 kunt installeren. We leren ook hoe je een Django applicatie maakt en die met een database verbindt.

Vereisten

  • Een server waarop Debian 10 draait.
  • Een root wachtwoord is op je server ingesteld.

Aan de slag

Voor je begint, update je je systeem met de nieuwste versie. Je kunt dat doen door het volgende commando uit te voeren:

apt-get update -y
apt-get upgrade -y

Zodra je systeem is bijgewerkt, herstart je het om de veranderingen toe te passen.

Installeer Django

Django is geschreven in de taal Python. Je zult dus afhankelijkheden van Python op je systeem moeten installeren om Django te kunnen installeren. Je kunt ze allemaal installeren met het volgende commando:

apt-get install python3 python3-pip tree -y

Nadat je alle pakketten geïnstalleerd hebt, kun je de geïnstalleerde versie van PIP verifiëren met het volgende commando:

pip3 -V

Je zou de volgende uitvoer moeten krijgen:

pip 18.1 from /usr/lib/python3/dist-packages/pip (python 3.7)

Nu kun je overgaan tot de installatie van Django met het PIP commando zoals hieronder:

pip3 install Django

Als de installatie voltooid is, controleer je de Django versie met het volgende commando:

django-admin --version

Je zou de volgende uitvoer moeten zien:

3.0.2

Op dit punt is Django op je server geïnstalleerd. Je kunt nu verder gaan met de volgende stap.

Maak een Django Project

Laten we nu beginnen met het maken van een voorbeeld Django project. Verander eerst de directory in de /opt waar je een Django project wilt maken:

cd /opt

Voer vervolgens het volgende commando uit om een nieuw Django project te maken met de naam Dproject:

django-admin startproject Dproject

Als het project is aangemaakt, kun je de mappenstructuur van dit project bekijken met het volgende commando:

tree

Je zou de volgende uitvoer moeten krijgen:

.
??? Dproject
    ??? Dproject
    ?   ??? asgi.py
    ?   ??? __init__.py
    ?   ??? settings.py
    ?   ??? urls.py
    ?   ??? wsgi.py
    ??? manage.py

Verander vervolgens de directory in het Dproject en migreer de hangende wijzigingen met het volgende commando:

cd Dproject
python3 manage.py migrate

Als de migratie met succes is voltooid, zou je de volgende uitvoer moeten zien:

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 sessions.0001_initial... OK

Op dit punt is een nieuw Django project aangemaakt in de map /opt.

Maak een supergebruiker voor Django

Vervolgens moet je een supergebruiker voor Django maken om toegang te krijgen tot de Django admin interface. Je kunt die aanmaken met het volgende commando:

python3 manage.py createsuperuser

Geef je gewenste gebruikersnaam, emailadres en wachtwoord op zoals hieronder:

Username (leave blank to use 'root'): admin
Email address: [email protected]
Password: 
Password (again): 
Superuser created successfully.

Start Django Server

Standaard is Django niet toegankelijk vanaf het externe systeem. Je zult dus Django moeten configureren en je server IP bepalen. Je kunt dat doen door het bestand settings.py te bewerken.

nano /opt/Dproject/Dproject/settings.py

Verander de volgende regel:

ALLOWED_HOSTS = ['your-server-ip']

Sla het bestand op en sluit het als je klaar bent. Start vervolgens de Django server met het volgende commando:

cd /opt/Django
python3 manage.py runserver 0.0.0.0:8000

Als de server met succes gestart is, zou je de volgende uitvoer moeten krijgen:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
January 07, 2020 - 13:01:23
Django version 3.0.2, using settings 'Dproject.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

Toegang tot Django toepassing

Op dit punt is de Django applicatie gestart en luistert op poort 8000. Om er toegang toe te krijgen, open je je webbrowser en typ je de URL http://your-server-ip:8000. Je zou de Django applicatie in het volgende scherm moeten zien:

Django Framework

Om de Django Admin interface te openen, open je je webbrowser en typ je de URL http://your-server-ip:8000/admin. Je wordt doorverwezen naar de Django login pagina:

Django Inloggen

Geef je Django admin gebruikersnaam en wachtwoord op en klik op de knop Log in. Je zou de Django Admin interface in het volgende scherm moeten zien:

Django Admin Console

Installeer de MariaDB Database Connector

Vervolgens moet je de MariaDB database connector en andere ontwikkelingspakketten installeren om Django met de MariaDB database te verbinden. Je kunt ze allemaal installeren met het volgende commando:

apt-get install mariadb-server python3-dev libmariadb-dev libmariadbclient-dev -y

Als alle pakketten geïnstalleerd zijn, kun je de mysqlclient bibliotheek installeren met het PIP commando zoals hieronder:

pip3 install mysqlclient

Eenmaal geïnstalleerd, log je in op de MariaDB shell met het volgende commando:

mysql

Stel vervolgens het root wachtwoord voor MariaDB in met het volgende commando.

MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpassword");

Maak vervolgens een database voor Django met het volgende commando:

MariaDB [(none)]> create database testdb;

Je kunt de hierboven gemaakte database zien met het volgende commando:

MariaDB [(none)]> show databases;

Je zou de volgende uitvoer moeten krijgen:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| testdb             |
+--------------------+

Spoel vervolgens de privileges door en verlaat de MariaDB shell met het volgende commando:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Configureer Django voor MariaDB verbinding

Vervolgens moet je in Django MariaDB databank credentials definiëren. Je kunt die definiëren door het bestand settings.py te bewerken:

nano /opt/Dproject/Dproject/settings.py

Zoek de volgende regels:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

En vervang ze door de volgende regels:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
        'read_default_file': '/etc/mysql/mariadb.conf.d/50-client.cnf',
        },
    }
}

Sla het bestand op en sluit het als je klaar bent. Bewerk dan het MariaDB client credential bestand zoals hieronder:

nano /etc/mysql/mariadb.conf.d/50-client.cnf

Definieer je MariaDB databank credentials zoals hieronder:

[client]
database = testdb 
user = root   
password = newpassword
default-character-set = utf8

Bewaar en sluit het bestand en herstart dan de MariaDB dienst om de veranderingen door te voeren:

systemctl restart mariadb

Verander vervolgens de directory in het Django project en migreer de nieuwe wijzigingen met het volgende commando:

cd /opt/Dproject
python3 manage.py migrate

Als de migratie met succes is voltooid, kun je verder gaan met de volgende stap.

Test de MariaDB verbinding

Op dit punt is Django geconfigureerd om de MariaDB databank te verbinden. Het is tijd om die te testen.

Start daartoe de Django server met het volgende commando:

cd /opt/Django
python3 manage.py runserver 0.0.0.0:8000

Als de Django server met succes gestart is, zou je de volgende uitvoer moeten krijgen:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).
January 07, 2020 - 13:30:49
Django version 3.0.2, using settings 'Dproject.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

Je kunt nu je Django applicatie benaderen met de URL http://your-server-ip:8000. Je zou je Django applicatie in het volgende scherm moeten zien:

Django toepassing

Na het testen kun je de Django server elk type stoppen door in je terminal op CTRL + C te drukken.

Conclusie

Gefeliciteerd! Je hebt met succes Django geïnstalleerd en het met de MariaDB databank verbonden op Debian 10 server. Je kunt nu beginnen met het ontwikkelen van je webapplicatie en migraties in je Django applicatie toepassen. Voel je vrij me te vragen als je vragen hebt.