Vissza a bloghoz

Django modellek létrehozása: Útmutató

Django modellek létrehozása: Útmutató

Django egy jól ismert webes keretrendszer biztonságos és könnyen karbantartható webhelyek és webalkalmazások gyors fejlesztéséhez. A Python alapú Django leegyszerűsíti a webfejlesztést, így több idő és figyelem jut az alkalmazások írására anélkül, hogy minden egyes alkalommal újra fel kellene találni a spanyolviaszt. A Django egy ingyenes és nyílt forráskódú projekt robusztus hivatalos dokumentációval, nagyszerű közösségi támogatással, valamint rengeteg ingyenes és fizetős támogatási lehetőséggel.

Ebben az útmutatóban elmerülünk a Django modellek létrehozásában. A Django-ban a model az adatokkal kapcsolatos információk kulcsfontosságú forrása. A modellek leírják a tárolandó adatok mezőit és viselkedését. A Django a modellt használja az adatbázis-táblák létrehozásához az ORM (Object Relational Mapping) segítségével, amelyeket szintén modellekként emlegetnek.

Előfeltételek

Egy Unix-alapú operációs rendszeren dolgozunk, lehetőleg egy Ubuntu 20.04 felhőszerveren, mint azon a rendszeren, amelyen teszteltük. Ha hasonló környezetben szeretné beállítani a Django-t, kérjük, olvassa el a „Hogyan telepítsük a Django-t és állítsunk be fejlesztői környezetet Ubuntu 20.04-en.”

1. lépés: Python fejlesztői környezet

A Django a Pythonra épül. Ezért szükségünk van egy robusztus Python fejlesztői környezetre az összes szükséges eszközzel a Python alkalmazásokkal való munkához. Ezt már tárgyaltuk egy dedikált útmutatóban. Itt egy rövid bemutatót tartunk.

Először indítson el egy terminált, és futtassa a következő parancsokat:

Ezután telepítse a pip – a Python csomagkezelőt:

Ezután telepítsen néhány további fejlesztői csomagot:

Django Models 1

A virtuális környezet létrehozásához szükségünk van a Python venv modulra is:

2. lépés: A MySQL szerver telepítése

A MySQL egy népszerű relációs adatbázis-kezelő rendszer. Nyílt forráskódú, stabil és funkciókban gazdag. A MySQL-t fogjuk használni adatbázis-szerverként a Django alkalmazásunkhoz. Telepítse a MySQL-t az APT segítségével:

Ezután ellenőrizze a telepítést:

Django Models 2

Ez csak egy alapvető MySQL beállítás az alapértelmezett opciókkal. Tekintse meg a részletesebb útmutatót a MySQL telepítéséről és konfigurálásáról.

3. lépés: A Django alkalmazás beállítása

Most már készen állunk a Django alkalmazásunk létrehozására. Ha érdekli a Django további részletes bemutatása, kérjük, olvassa el a „A Django webes keretrendszer telepítése Ubuntu 20.04-en.”

Ezután hozzon létre egy dedikált könyvtárat az alkalmazás számára. A könyvtár nevének tükröznie kell a projekt nevét:

A projektkönyvtáron belül hozzon létre egy Python virtuális környezetet a venv modul használatával:

Aktiválja a virtuális környezetet:

Django Models 3

Telepítse a Django-t a következővel: pip:

Ezután hozzon létre egy új Django projektet a(z) django-admin paranccsal:

django-admin

4. lépés: A Django alkalmazás konfigurálása

A Django alkalmazás tartalmazza az összes alapértelmezett konfigurációt. A célunk eléréséhez el kell végeznünk néhány módosítást.

Kezdje a konfigurációs fájl szerkesztésével: settings.py:

Ezután módosítsa az időzónát:

TIME_ZONE

Adja hozzá azokat a gépeket, amelyek hozzáférhetnek a Django alkalmazásszerverhez:

ALLOWED_HOSTS

Ezután alkalmazza a változtatásokat:

Django Models 4

Végül hozzon létre egy szuperfelhasználót a Django webalkalmazásunkhoz:

python manage.py

5. lépés: Django alkalmazás csatlakoztatása a MySQL-hez

A MySQL-hez való csatlakozáshoz egy további, a Django-val kompatibilis Python konnektor könyvtárra van szükségünk. A következőt fogjuk használni: mysqlclient.

Először ellenőrizze, hogy a szükséges csomagok telepítve vannak-e:

python3-dev

Ezután telepítse a következőt: mysqlclient:

  • Dedikált adatbázis létrehozása

Az alkalmazásunkhoz létre kell hoznunk egy dedikált adatbázist és egy adatbázis-felhasználót. Indítsa el a MySQL shellt mint root:

sudo mysql -u rootHozzon létre egy dedikált adatbázist a Django alkalmazásunkhoz:

Ezután hozzon létre egy dedikált adatbázis-felhasználót a Django alkalmazáshoz:

Végül adjon teljes jogosultságot a dedikált felhasználónak a dedikált adatbázison:

GRANT ALL ON
  • A Django konfiguráció módosítása a MySQL használatához

Most módosítanunk kell néhány Django konfigurációt, hogy az a MySQL-t használhassa adatbázis-szerverként. Nyissa meg a settings.py fájlt egy szövegszerkesztőben:

Görgessen le a DATABASES részhez, és illessze be a következő kódot:

DATABASES

Ezután szerkessze a MySQL konfigurációs fájlt, hogy az tartalmazza a szükséges adatbázis-hitelesítő adatokat:

Adja hozzá a következő blokkot a fájl végéhez:

Django Models 5

Indítsa újra a MySQL-t a változtatások érvénybe léptetéséhez:

6. lépés: Django modell létrehozása

Most már készen állunk egy új modell létrehozására a Django projektünkben. Aktiválja a virtuális környezetet:

Ezen a helyen utasítsa a Django-t egy új alkalmazás létrehozására:

A létrehozás után a fájlstruktúrának valahogy így kell kinéznie. Itt a models.py fájl fogja tartalmazni az egyéni Django modellünk kódjait:

Django Models 6

Ellenőrizze a fájl jelenlegi tartalmát:

cat models.py

A bemutatóhoz egy blogbejegyzésekhez tartozó modellt fogunk létrehozni, melynek neve Post. Ez a következő mezőket fogja tartalmazni:

  • title: A blogbejegyzés címe.
  • slug: Érvényes URL-eket tárol és generál a weboldalakhoz.
  • content: A blogbejegyzés szövege.
  • created_on: A bejegyzés létrehozásának dátuma.
  • author: A bejegyzést létrehozó felhasználó.

Nyissa meg a models.py fájlt egy szövegszerkesztőben:

Importáljunk néhány szükséges API-t a modellünkhöz. Alapértelmezés szerint a models API-t importálja. Szükségünk lesz még a slugify API-ra a slug-ok generálásához, a User API-ra a hitelesítéshez, valamint a reverse API-ra a jobb és rugalmasabb URL-létrehozáshoz:

Ezután adja hozzá a Post nevű osztálymetódust. Ez tartalmazni fogja a szükséges adatbázis-mezőket, mint például a title, slug, content, created_on, és author:

Szükségünk van az URL-generálás és a bejegyzés mentésének funkciójára. Ez azért fontos, mert egyedi linkeket generál, amelyek az egyedi bejegyzésekhez kapcsolódnak:

A következő szakasz megmondja a modellnek, hogyan rendezze a bejegyzéseket és hogyan jelenítse meg azokat a weboldalon. A logikát egy belső osztállyal kódoljuk, a Meta osztállyal. Ez további modell-logikát fog tartalmazni, amely nem érinti az adatbázis meződefinícióját:

Végül pedig szükségünk lesz a Comment modell funkciójára ebben a fájlban. Ehhez egy másik, Comment nevű osztályt kell hozzáadnunk a models.Model szignatúrával. Ez a következő adatbázismezőket fogja tartalmazni:

  • name: A hozzászóló neve.
  • email: A hozzászóló e-mail-címe.
  • text: Magának a hozzászólásnak a tartalma.
  • post: A bejegyzés, amelyhez a hozzászólás készült.
  • created_on: A hozzászólás létrehozásának ideje.

A kód valahogy így fog kinézni:

Ezen a ponton a models.py fájlunk így fog kinézni:

models.py

Végül mentse el a fájlt, és zárja be a szerkesztőt.

7. lépés: A Django beállításainak frissítése

A modell elkészült. Azonban módosítanunk kell néhány konfigurációs fájlt, hogy a modellt működésbe hozzuk. A settings.py fájlon belül hozzá kell adnunk a modellünket az alábbi szekcióhoz: INSTALLED_APPS.

Nyissa meg a settings.py fájlt egy szövegszerkesztőben:

Regisztrálja az új modult az alábbi szekcióban: INSTALLED_APPS:

INSTALLED_APPS

Mentse el a fájlt, és zárja be a szerkesztőt.

8. lépés: A változtatások migrálása

Most, hogy hozzáadtuk az összes kívánt modellt, a következő lépés a változtatások alkalmazása. A Django alkalmazni fogja ezeket a sémákat a MySQL adatbázisunkra.

A következő parancs létrehozza az összes szükséges migrációs fájlt. A kimenet megmutatja ezeknek a fájloknak a helyét a projektkönyvtáron belül:

makemigrations

A következő parancs kilistázza az összes meglévő migrációt:

Django Models 6

Vegye figyelembe, hogy az összes migráció meg van jelölve, kivéve a 0001_initial jelű, a következő modellekhez létrehozott migrációt: Post és Comment.

A következő parancs megmutatja, hogy a Django milyen SQL-lekérdezést fog végrehajtani a migrációk elvégzéséhez:

sample_app

Most már csak alkalmaznunk kell a migrációkat. Ezek a migrációk beírják a változtatásokat az adatbázisba:

migrate

9. lépés: A változtatások ellenőrzése

A változtatások ellenőrzéséhez vessünk egy pillantást a MySQL adatbázisunkra. Indítsa el a MySQL shellt Django felhasználóként:

Ezután váltson át az aktuális aktív adatbázisról a Django alkalmazás adatbázisára:

Listázza az adatbázis összes tábláját:

Végezetül, bármelyik tábla tartalmának megtekintéséhez használja a DESCRIBE lekérdezést:

Django Models 7

A Django korlátai MySQL használata esetén

Ha a MySQL-t használja adatbázis-szerverként a Django alkalmazásához, érdemes néhány dolgot szem előtt tartani:

  • A sémamódosító folyamatok körüli tranzakciók támogatása meglehetősen korlátozott. Ez azt jelenti, hogy ha egy migráció meghiúsul, a következő migrációs kísérlet előtt manuálisan kell visszavonni az összes változtatást. Nincs lehetőség egy korábbi állapotra való visszaállításra, amikor a sikertelen migráció még nem történt meg.
  • A legtöbb sémamódosító folyamat esetében a MySQL teljesen újraírja a táblákat. Bizonyos helyzetekben ez rendkívül időigényes lehet. Legrosszabb esetben az időbeli összetettség arányos lesz a hozzáadandó sorok vagy az eltávolítandó oszlopok számával. A hivatalos Django dokumentáció szerint ez egymillió soronként akár egy percet is igénybe vehet.
  • A MySQL karakterkorlátot kényszerít ki az oszlopok, táblák és indexek neveinek hosszára. Emellett korlátozva van az összes oszlop és index lefedettségének teljes mérete is. A Django túllépheti ezt a korlátot. A MySQL-en kívül néhány más backend képes kezelni a Django magasabb korlátját.

Ezért erősen ajánlott mérlegelni a lehetőségeket, és a megfelelőt választani.

Záró gondolatok

Ez az útmutató sikeresen bemutatja, hogyan adhatunk modulokat egy meglévő Django alkalmazáshoz. Az alkalmazás backendjeként a MySQL-t használtuk. Emellett bemutat néhány kulcsfontosságú Django fogalmat is, mint például a modellek, a migráció működése, és hogy a Django hogyan fordítja le a modelleket MySQL adatbázis-táblákká.

Kellemes kódolást!

author

Hark Labs

Szerző · CloudSigma

Preslav Dobrev a CloudSigma kreatív tervezője, aki hagyományos és innovatív marketingcsatornák segítségével következetes vállalati identitás kialakítására összpontosít. Kiemelkedően képes ötvözni a művészi látásmódot a stratégiai marketinggel, hogy hatásos márkatörténeteket hozzon létre.

Hozzászólások

Még nincsenek hozzászólások. Legyen Ön az első.