Üdv a webfejlesztés izgalmas világában! Ha valaha is álmodtál arról, hogy saját webalkalmazást készíts, de tartottál a bonyolultnak tűnő technológiáktól, akkor jó helyen jársz. Ebben a cikkben megmutatjuk, hogyan hozhatod létre az első működő Django projektedet kevesebb mint 30 perc alatt. Készülj fel egy gyors, de átfogó utazásra, amely során megismerkedhetsz a Python alapú Django keretrendszer alapjaival, és már ma egy működő prototípussal zárhatod a napot!
A Django egy ingyenes és nyílt forráskódú webes keretrendszer, amelyet Python programozási nyelven írtak. Gyors fejlesztést tesz lehetővé, és a „Don’t Repeat Yourself” (DRY) elvét követi. Beépített funkciói (például admin felület, autentikáció) miatt hihetetlenül népszerű a fejlesztők körében. Ha valaha is hallottad a „Python a webhez” kifejezést, akkor valószínűleg a Djangóra gondoltak!
1. Felkészülés: Amire szükséged lesz
Mielőtt belevágnánk a kódolásba, győződj meg róla, hogy az alábbi eszközök telepítve vannak a gépeden:
- Python: A Django Pythonra épül, így ez a legfontosabb előfeltétel. Látogass el a python.org oldalra, és töltsd le a legfrissebb stabil verziót (általában a 3.8+). A telepítés során ügyelj arra, hogy bejelöld a „Add Python to PATH” opciót!
- PIP: Ez a Python csomagkezelője, amivel könnyedén telepítheted a Django-t és más szükséges könyvtárakat. Általában a Python telepítésével együtt érkezik. Ellenőrizheted a verzióját a
pip --version
paranccsal. - Kódszerkesztő: Bár bármilyen szövegszerkesztő megteszi, javasoljuk egy modern kódszerkesztő, például a VS Code használatát. Szintaxis kiemelést, kódkiegészítést és sok más hasznos funkciót kínál.
Ha ezek megvannak, készen állsz a startra!
2. A Munkakörnyezet Előkészítése: Virtuális Környezet
Az egyik legfontosabb (és gyakran elhanyagolt) lépés egy Django projekt indításakor a virtuális környezet használata. De miért is van erre szükség?
Képzeld el, hogy több Python projektet is fejlesztesz. Az egyikhez a Django 3.2-re, a másikhoz a Django 4.0-ra van szükséged, és ezekhez különböző verziójú kiegészítő könyvtárak is tartozhatnak. Ha mindent globálisan telepítenél, hamarosan függőségi problémákkal és verzióütközésekkel szembesülnél. A virtuális környezet egy elszigetelt Python környezetet hoz létre minden projekthez, így garantálva, hogy a projektjeid nem befolyásolják egymást.
Hozz létre egy új mappát a projektednek, például myfirstdjango
, és nyisd meg a parancssort (vagy terminált) ebben a mappában.
mkdir myfirstdjango
cd myfirstdjango
Most hozzuk létre a virtuális környezetet:
python -m venv venv
Ez létrehoz egy venv
nevű mappát, amely tartalmazza a virtuális környezetet. Most aktiválnunk kell:
- Windows esetén:
venvScriptsactivate
- macOS / Linux esetén:
source venv/bin/activate
Látni fogod, hogy a parancssor elején megjelenik a (venv)
felirat, jelezve, hogy a virtuális környezet aktív.
3. Django Telepítése
Miután aktiváltad a virtuális környezetet, telepíthetjük a Django keretrendszert. Győződj meg róla, hogy a (venv)
előtag látható a parancssorban!
pip install Django
Ez letölti és telepíti a Django legújabb stabil verzióját. Egy-két percbe telhet a letöltési sebességtől függően. Ellenőrizd a sikeres telepítést:
django-admin --version
Ennek meg kell jelennie a telepített Django verziószámának.
4. Az Első Django Projekt Létrehozása
A Django projektek létrehozásához a django-admin
segédprogramot használjuk. Futtasd a következő parancsot a myfirstdjango
mappában:
django-admin startproject myfirstproject .
A .
(pont) a parancs végén nagyon fontos! Ez azt jelenti, hogy a projektfájlokat az aktuális mappába hozza létre, nem pedig egy újabb almappába. Ha elhagyod, egy felesleges extra mappát kapsz.
Nézzük meg, mi jött létre:
manage.py
: Egy parancssori segédprogram, amivel a projektet kezelhetjük (szerver indítása, adatbázis migrálás, stb.).myfirstproject/
mappa: Ez a fő projekt konfigurációs mappa.__init__.py
: Azt jelzi a Pythonnak, hogy ez egy csomag.asgi.py
: ASGI kompatibilis szerverekhez való belépési pont.settings.py
: Itt található a projekt összes beállítása (adatbázis, telepített appok, sablonok, stb.).urls.py
: A projekt fő URL konfigurációja, ide futnak be a kérések.wsgi.py
: WSGI kompatibilis szerverekhez való belépési pont.
5. Az Adatbázis Előkészítése és a Fejlesztői Szerver Indítása
Mielőtt elindítanánk a szervert, el kell készítenünk az adatbázist. A Django alapértelmezésben SQLite adatbázist használ, ami ideális fejlesztéshez, mivel nem igényel külön szervert.
python manage.py migrate
Ez a parancs létrehozza az alapvető adatbázis táblákat, amelyekre a Django-nak szüksége van (felhasználók, csoportok, admin felület, stb.). Látni fogod, hogy számos migrálást futtat. Ezután indíthatjuk a fejlesztői szervert:
python manage.py runserver
Ha minden rendben ment, látni fogsz egy üzenetet, hogy a szerver elindult a http://127.0.0.1:8000/
címen. Nyisd meg a böngésződet, és navigálj erre az URL-re.
Gratulálunk! Ha látod a „The install worked successfully! Congratulations!” üzenetet zöld háttérrel, akkor sikeresen elindítottad az első Django fejlesztői szerveredet és projektedet. Ez az alapja minden további munkának.
A szervert a Ctrl+C billentyűkombinációval állíthatod le a parancssorban.
6. Az Első Django Alkalmazás Létrehozása
A Django projektjei alkalmazásokból (apps) épülnek fel. Egy projekt több alkalmazást tartalmazhat, és minden alkalmazásnak önálló feladata van. Például egy blogprojektben lehet egy blog app, egy komment app és egy felhasználói app. Ez a moduláris felépítés segít a kód rendszerezésében és az újrafelhasználásban.
Hozzuk létre az első alkalmazásunkat, legyen mondjuk myapp
:
python manage.py startapp myapp
Ez létrehoz egy myapp
nevű mappát, benne a szükséges fájlokkal (models.py
, views.py
, admin.py
stb.).
Ahhoz, hogy a Django tudjon az új alkalmazásunkról, regisztrálnunk kell a projekt settings.py
fájljában. Nyisd meg a myfirstproject/settings.py
fájlt, és keresd meg az INSTALLED_APPS
listát. Add hozzá a 'myapp'
elemet a listához:
# myfirstproject/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # Ide került az új app
]
7. Egy Egyszerű Adatmodell Definiálása
A Django egy úgynevezett ORM-et (Object-Relational Mapper) használ, ami leegyszerűsíti az adatbázis kezelését. Ahelyett, hogy SQL lekérdezéseket írnánk, Python osztályokkal definiáljuk az adatbázis tábláinkat (ezek a modellek). Ezeket az osztályokat a Django automatikusan lefordítja adatbázis táblákká.
Nyisd meg a myapp/models.py
fájlt, és adjunk hozzá egy egyszerű Task
(feladat) modellt:
# myapp/models.py
from django.db import models
class Task(models.Model):
title = models.CharField(max_length=200)
description = models.TextField(blank=True, null=True)
created_at = models.DateTimeField(auto_now_add=True)
completed = models.BooleanField(default=False)
def __str__(self):
return self.title
Ebben a modellben négy mezőt definiáltunk:
title
: A feladat címe (szöveg, max. 200 karakter).description
: A feladat leírása (hosszú szöveg, lehet üres).created_at
: A létrehozás dátuma és ideje (automatikusan beállítódik).completed
: Logikai érték, hogy a feladat befejezett-e.
A __str__
metódus azt határozza meg, hogyan jelenjen meg egy Task
objektum, amikor sztringként kezeljük (pl. az admin felületen).
Miután módosítottuk a modellt, le kell fordítanunk adatbázis migrálásokká, majd végre kell hajtanunk őket:
python manage.py makemigrations myapp
python manage.py migrate
Az első parancs létrehozza a migrációs fájlt a módosításainkról, a második pedig alkalmazza ezeket a módosításokat az adatbázison.
8. Az Admin Felület Aktiválása és Használata
A Django admin felület az egyik legnagyszerűbb funkciója. Pár sor kóddal kapsz egy teljes értékű adminisztrációs felületet az adatbázisod kezelésére.
Először is, hozzunk létre egy szuperfelhasználót, aki hozzáférhet az admin felülethez:
python manage.py createsuperuser
Add meg a kívánt felhasználónevet, e-mail címet és jelszót. A jelszó beírásakor nem fogsz látni karaktereket, ez normális.
Most regisztrálnunk kell a Task
modellünket az admin felületen. Nyisd meg a myapp/admin.py
fájlt, és módosítsd a következőképpen:
# myapp/admin.py
from django.contrib import admin
from .models import Task
admin.site.register(Task)
Indítsd újra a fejlesztői szervert (ha leállítottad):
python manage.py runserver
Nyisd meg a böngésződben a http://127.0.0.1:8000/admin/
címet, és jelentkezz be az imént létrehozott szuperfelhasználói fiókkal. Látni fogod a Tasks
menüt. Kattints rá, és adj hozzá néhány feladatot!
9. Nézetek (Views) és URL-ek Létrehozása
A nézetek (views) felelősek a webes kérések fogadásáért és a válaszok generálásáért. Az URL-ek pedig azt mondják meg a Djangónak, hogy melyik URL-hez melyik nézet tartozik.
Hozzuk létre az első nézetünket a myapp/views.py
fájlban. Ez egy egyszerű oldal lesz, ami listázza a feladatainkat:
# myapp/views.py
from django.shortcuts import render
from django.http import HttpResponse
from .models import Task
def task_list(request):
tasks = Task.objects.all() # Lekéri az összes feladatot az adatbázisból
return render(request, 'myapp/task_list.html', {'tasks': tasks})
A render
függvény a Django sablonmotorját használja, amit hamarosan létrehozunk.
Most adjunk hozzá URL-eket ehhez a nézethez. Először hozz létre egy urls.py
fájlt a myapp
mappában:
# myapp/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.task_list, name='task_list'),
]
Végül, csatlakoztatnunk kell az appunk URL-jeit a fő projekt URL-jeihez. Nyisd meg a myfirstproject/urls.py
fájlt, és módosítsd a következőképpen:
# myfirstproject/urls.py
from django.contrib import admin
from django.urls import path, include # Fontos: include importálása
urlpatterns = [
path('admin/', admin.site.urls),
path('tasks/', include('myapp.urls')), # Új sor: ide mutat az appunk
]
A path('tasks/', include('myapp.urls'))
azt jelenti, hogy minden, ami a /tasks/
után jön, az myapp/urls.py
fájlban lesz feldolgozva.
10. Sablonok (Templates) Használata
A nézetünk egy task_list.html
sablont próbál megjeleníteni. Hozzuk létre ezt a fájlt!
A Django alapértelmezés szerint a templates
nevű mappát keresi minden alkalmazásban. Jó gyakorlat, ha ezen belül létrehozunk egy mappát az appunk nevével, hogy elkerüljük a sablonnév ütközéseket.
Hozd létre a következő mappastruktúrát:
myapp/
├── templates/
│ └── myapp/
│ └── task_list.html
Most nyisd meg a myapp/templates/myapp/task_list.html
fájlt, és illessz be valami ilyesmit:
<!DOCTYPE html>
<html lang="hu">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Feladatok Listája</title>
<style>
body { font-family: Arial, sans-serif; margin: 20px; background-color: #f4f4f4; }
h1 { color: #333; }
ul { list-style-type: none; padding: 0; }
li { background-color: #fff; margin-bottom: 10px; padding: 15px; border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
strong { color: #007bff; }
.completed { text-decoration: line-through; color: #888; }
.description { font-size: 0.9em; color: #555; margin-top: 5px; }
</style>
</head>
<body>
<h1>A Feladataim</h1>
<ul>
{% for task in tasks %}
<li class="{% if task.completed %}completed{% endif %}">
<strong>{{ task.title }}</strong> <br>
{% if task.description %}<span class="description">{{ task.description }}</span><br>{% endif %}
<small>Létrehozva: {{ task.created_at|date:"Y.m.d H:i" }}</small>
</li>
{% empty %}
<li>Nincsenek még feladatok. Menj az admin felületre és adj hozzá néhányat!</li>
{% endfor %}
</ul>
<p><a href="/admin/">Admin felület</a> – Kezelje a feladatokat!</p>
</body>
</html>
Ebben a sablonban Django sablonnyelvet használunk ({% for %}
, {{ task.title }}
), amivel dinamikusan jelenítjük meg az adatokat, amiket a nézetünk átadott.
Győződj meg róla, hogy a fejlesztői szerver fut, és látogasd meg a http://127.0.0.1:8000/tasks/
címet. Látnod kell a listázott feladataidat az adatbázisból!
Összefoglalás és Következő Lépések
Hihetetlen! Kevesebb mint 30 perc alatt egy teljesen működőképes Django webalkalmazást hoztál létre! Végezzünk gyors leltárt, mit is értél el:
- Beállítottál egy virtuális környezetet.
- Telepítetted a Django keretrendszert.
- Létrehoztál egy Django projektet és egy alkalmazást.
- Definiáltál egy adatbázis modellt és végrehajtottál migrálásokat.
- Létrehoztál egy szuperfelhasználót és használtad a Django admin felületet az adatok kezelésére.
- Készítettél egy nézetet és konfiguráltál egy URL-t.
- Elkészítettél egy sablont az adatok megjelenítéséhez.
Ez egy lenyűgöző teljesítmény egy ilyen rövid idő alatt! Ez a tudás a webfejlesztés alapja, és rengeteg lehetőséget nyit meg előtted. Ne állj meg itt!
Mik a következő lépések?
- Statikus fájlok: Tanuld meg, hogyan kezelheted a CSS, JavaScript és képeket a Djangóban.
- Formok: Hozd létre saját űrlapjaidat a felhasználói bevitelhez.
- Felhasználói hitelesítés: Építs be regisztrációt és bejelentkezést.
- Stílus és Design: Integrálj CSS keretrendszereket, mint például a Bootstrap, hogy gyönyörűvé tedd az oldaladat.
- REST API: Fedezd fel a Django REST Framework-öt, ha API-kat szeretnél építeni.
- Deployment: Tanuld meg, hogyan telepítsd az alkalmazásodat egy éles szerverre.
A Django hatalmas és rendkívül sokoldalú. A most megszerzett alaptudás remek ugródeszka ahhoz, hogy tovább mélyedj benne. Gyakorolj, kísérletezz, és ne félj hibázni. A Python programozás és a webfejlesztés világa tárt karokkal vár! Sok sikert a további tanuláshoz!
Leave a Reply