Django
Ü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.
Kiirjuhend
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".
Klooni oma repositoorium
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Paigalda sõltuvused
pip install -r requirements.txt
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.
Saada oma muudatused üles
git add .
git commit -m "Initial setup"
git push origin main
Kohalik arendus Dockeriga
Kui sul ei ole Pythonit kohalikult paigaldatud, saad oma Django-rakenduse käivitamiseks kasutada Dockerit.
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',
}
}
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 = ['*']