Django
Áttekintés
A Django egy magas szintű Python webkeretrendszer, amely gyors fejlesztést és tiszta, pragmatikus tervezést támogat. Tartalmaz ORM-ot, admin panelt, hitelesítési rendszert és beépített sablonmotort.
Gyorsindítás
Repository létrehozása sablonból
A vezérlőpultodon menj a Tools & Deployment fülre. Kattints a "New Repository" gombra, válaszd ki a Django sablont a legördülő menüből, add meg a repository nevét és az aldomaint, majd kattints a "Create Repository" gombra.
Repository klónozása
git clone https://<git-server>/<username>/<repo-name>.git
cd <repo-name>
Függőségek telepítése
pip install -r requirements.txt
Adatbázis konfigurálása és migrációk futtatása
Frissítsd az adatbázis beállításokat a settings.py fájlban (lásd az Adatbázis konfiguráció részt alább), majd futtasd:
python manage.py migrate
python manage.py runserver
A szerver alapértelmezetten a http://localhost:8000 címen fut.
Változtatások feltöltése
git add .
git commit -m "Initial setup"
git push origin main
Helyi fejlesztés Dockerrel
Ha nincs Python telepítve a gépedre, használhatod a Dockert a Django alkalmazásod futtatásához.
Parancsok futtatása Dockerrel
# Függőségek telepítése
docker run --rm -v $(pwd):/app -w /app python:3.12 pip install -r requirements.txt
# Fejlesztői szerver futtatása
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"
Adatbázis konfiguráció
Az NStrim platform MySQL/MariaDB adatbázist biztosít számodra. Frissítsd a DATABASES beállítást a settings.py fájlban.
settings.py frissítése
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '<username>',
'USER': '<username>',
'PASSWORD': '<password>',
'HOST': 'db.<session-domain>',
'PORT': '3306',
}
}
student01). Ellenőrizd a vezérlőpult hitelesítő adatok részét a pontos értékekért.Projekt struktúra
├── project/
│ ├── settings.py # Projekt konfiguráció
│ ├── urls.py # Gyökér URL konfiguráció
│ └── wsgi.py # WSGI belépési pont
├── app/
│ ├── models.py # Adatbázis modellek
│ ├── views.py # View függvények / osztályok
│ ├── urls.py # App URL minták
│ ├── serializers.py # DRF szerializálók
│ ├── admin.py # Admin panel konfig
│ └── templates/ # HTML sablonok
├── static/ # CSS, JS, képek
├── manage.py # Django kezelő CLI
├── requirements.txt # Python függőségek
└── Dockerfile # Docker konfig
Gyakori feladatok
Model létrehozása
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
View létrehozása
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 konfiguráció
from django.urls import path
from . import views
urlpatterns = [
path('users/', views.user_list, name='user-list'),
]
Hasznos parancsok
python manage.py runserver
Fejlesztői szerver indítása
python manage.py migrate
Adatbázis migrációk futtatása
python manage.py makemigrations
Új migrációk létrehozása
python manage.py createsuperuser
Admin felhasználó létrehozása
python manage.py shell
Interaktív Python shell
Hibaelhárítás
OperationalError: (2002) Can't connect to MySQL server
Ok: Az adatbázis host helytelen vagy nem elérhető.
Megoldás: Ellenőrizd, hogy a HOST a DATABASES beállításban megegyezik-e a vezérlőpulton megjelenő adatbázis hosttal.
OperationalError: (1045) Access denied for user
Ok: Hibás felhasználónév vagy jelszó.
Megoldás: Ellenőrizd, hogy a USER és PASSWORD a settings.py fájlban pontosan megegyezik-e a vezérlőpulton megjelenő hitelesítő adatokkal.
No module named 'MySQLdb'
Megoldás: Telepítsd a MySQL klienst: pip install mysqlclient. macOS-en szükséged lehet erre is: brew install mysql-client.
DisallowedHost: Invalid HTTP_HOST header
Megoldás: Add hozzá a telepítési domaint az ALLOWED_HOSTS listához a settings.py fájlban: ALLOWED_HOSTS = ['*']