Ülevaade

Django on kõrgetasemeline Pythoni veebiraamistik, mis soodustab kiiret arendust ning puhast ja pragmaatilist disaini. See sisaldab sisseehitatud ORM-i, halduspaneeli, autentimissüsteemi ja mallisüsteemi.

Enne alustamist
Veendu, et sinu töölaud on avatud - vajad seal kuvatavaid Giti sisselogimisandmeid. See mall sisaldab Djangot, Gunicorni, mysqlclienti MySQL-i toe jaoks ja Django REST Frameworki.

Kiirjuhend

1

Loo repositoorium mallist

Mine oma töölaual vahekaardile Tools & Deployment. Klõpsa nuppu "New Repository", vali rippmenüüst Django mall, sisesta repositooriumi nimi ja alamdomeen ning klõpsa "Create Repository".

2

Klooni oma repositoorium

git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
3

Paigalda sõltuvused

pip install -r requirements.txt
4

Seadista andmebaas ja käivita migratsioonid

Uuenda andmebaasi seadeid failis settings.py (vaata allpool olevat andmebaasi seadistamise sektsiooni), seejärel käivita:

python manage.py migrate
python manage.py runserver

Server töötab vaikimisi aadressil http://localhost:8000.

5

Saada oma muudatused üles

git add .
git commit -m "Initial setup"
git push origin main
Iga push Giti juurutab sinu rakenduse automaatselt. Kontrolli oma Mooduli töö-URL-i töölaual, et näha oma live-saiti.

Kohalik arendus Dockeriga

Kui sul ei ole Pythonit kohalikult paigaldatud, saad oma Django-rakenduse käivitamiseks kasutada Dockerit.

Mis on Docker?
Docker loob isoleeritud "konteinerid" kogu vajaliku tarkvaraga (Python, pip), ilma et peaksid neid oma arvutisse paigaldama.

Käskude käivitamine Dockeriga

# Paigalda sõltuvused
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt

# Käivita arendusserver
docker run --rm -v $(pwd):/app -w /app -p 8000:8000 python:3.12 sh -c "pip install -r requirements.txt && python manage.py runserver 0.0.0.0:8000"

Andmebaasi seadistamine

NStrim-platvorm pakub sulle MySQL/MariaDB andmebaasi. Uuenda seadet DATABASES oma settings.py failis.

Uuenda settings.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '<username>',
        'USER': '<username>',
        'PASSWORD': '<password>',
        'HOST': 'db.<session-domain>',
        'PORT': '3306',
    }
}
Tähtis
Sinu andmebaasi nimi ja kasutajanimi on tavaliselt samad mis sinu töölaua kasutajanimi (nt student01). Täpseid väärtusi kontrolli oma töölaua sisselogimisandmete sektsioonist.

Projekti struktuur

├── project/
│   ├── settings.py            # Projekti seadistus
│   ├── urls.py                # Juur-URL-i seadistus
│   └── wsgi.py                # WSGI sisendpunkt
├── app/
│   ├── models.py              # Andmebaasi mudelid
│   ├── views.py               # Vaatefunktsioonid / -klassid
│   ├── urls.py                # Rakenduse URL-mustrid
│   ├── serializers.py         # DRF serialiseerijad
│   ├── admin.py               # Halduspaneeli seadistus
│   └── templates/             # HTML mallid
├── static/                    # CSS, JS, pildid
├── manage.py                  # Django haldus-CLI
├── requirements.txt           # Pythoni sõltuvused
└── Dockerfile                 # Dockeri seadistus
        

Levinud ülesanded

Mudeli loomine

from django.db import models

class User(models.Model):
    name = models.CharField(max_length=100)
    email = models.EmailField(unique=True)
    created_at = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.name

Vaate loomine

from django.http import JsonResponse
from .models import User

def user_list(request):
    users = list(User.objects.values('id', 'name', 'email'))
    return JsonResponse(users, safe=False)

URL-i seadistus

from django.urls import path
from . import views

urlpatterns = [
    path('users/', views.user_list, name='user-list'),
]

Kasulikud käsud

python manage.py runserver Käivita arendusserver
python manage.py migrate Käivita andmebaasi migratsioonid
python manage.py makemigrations Loo uued migratsioonid mudelimuudatuste põhjal
python manage.py createsuperuser Loo administraator /admin paneeli jaoks
python manage.py shell Interaktiivne Pythoni shell Djangoga

Tõrkeotsing

OperationalError: (2002) Can't connect to MySQL server

Põhjus: Andmebaasi host on vale või pole kättesaadav.

Lahendus: Kontrolli, et HOST seades DATABASES vastaks töölaualt saadud andmebaasi hostile.

OperationalError: (1045) Access denied for user

Põhjus: Vale kasutajanimi või parool.

Lahendus: Kontrolli, et USER ja PASSWORD sinu settings.py failis vastaksid täpselt sinu töölaua sisselogimisandmetele.

No module named 'MySQLdb'

Lahendus: Paigalda MySQL klient: pip install mysqlclient. macOS-il võib olla vaja ka: brew install mysql-client.

DisallowedHost: Invalid HTTP_HOST header

Lahendus: Lisa oma juurutusdomeen ALLOWED_HOSTS nimekirja failis settings.py: ALLOWED_HOSTS = ['*']

Juurutamise töövoog

Koodimuudatus git push pip install Live!
Lisainfo saamiseks külasta ametlikku Django dokumentatsiooni.