Első lépések a Django-val – Bevezetés és bemutató

Közzététel: Támogatása segít fenntartani a webhely működését! Az ezen az oldalon javasolt szolgáltatások némelyikén referenciadíjat keresünk.


A Django egy gyors fejlesztési keret a webes alkalmazásokhoz, Python-ban írva.

A fejlesztési keret egy alkalmazásváz, amely a szoftverek gyors felépítéséhez szükséges eszközökkel rendelkezik, és véleményt ad a szoftver felépítéséről.

A keretrendszer csökkenti a „kazánlap” kódot a leggyakoribb szolgáltatások – adatbázis-összeköttetés, felhasználói bejelentkezés, munkamenedzsment, kérés-útválasztás – biztosításával. Ezekre szinte minden alkalmazásban szükség van, tekintet nélkül az alkalmazás konkrét céljára, és nem kell minden új projektre áttervezni őket.

A fejlesztési keretrendszer architektúrát is biztosít a rendszer számára. Ahelyett, hogy időt és energiát költene a kód rendezésének eldöntésére (vagy ha végtelen problémák merülnének fel ennek elmulasztásával), a keretrendszernek megfelelő módja van a szolgáltatások szervezésének, így elkezdheti őket létrehozni.

Látni fogjuk, hogy néz ki ez a szerkezet, amikor az első alkalmazást beállítottuk.

Elkezdeni

Az egyetlen dolog, amire igazán szükséged van, az internet-hozzáférés, a parancssori alapvető ismerete és a kódszerkesztő.

A legtöbb Linux-felhasználó valószínűleg tudja, hogyan érheti el terminálját, de itt egy gyors útmutató a Linux terminálhoz, ha nem. Ha Mac OS X rendszert használ, akkor van egy Linux / Unix-szerű parancssor, amely elérhető a Terminal alkalmazásban.

A Windows parancssor kissé különbözik a Mac OS X és Linux operációs rendszertől (bash)..

Használhatja a Windows Powershell-et, de nagyon sokáig kell lefordítania – nem csak itt, hanem a legtöbb más oktatóanyagban és referencia útmutatóban is..

A legegyszerűbb módszer valószínűleg egyszerűen egy bash terminál telepítése.

Van néhány lehetősége:

  • Cygwin: ez a Linux / Unix eszközök gyűjteménye a Windows számára, beleértve a bash terminált is.
  • Gitbash: A Git for Windows bash implementációval érkezik. Egyébként valószínűleg a git-t (és a Github-ot) szeretné használni a verziókezeléshez, így ez egy nagyon egyszerű megoldás.
  • A Windows 10 tartalmaz egy Ubuntu-alapú Bash-héjat, amely csodálatos. Egy kicsit megteszi, hogy működőképes legyen.

Minden telepítése

Számos lépés létezik a Django futtatásához: Python, Frissítse a Python csomagkezelőt, állítsa be a virtuális környezetet, és telepítse a Django-t.

Piton

Ha még nincs számítógépe Python, akkor szüksége van rá. Az összes főbb operációs rendszer Python-linkjéhez lásd a Python letöltés oldalát.

A Python 3-at szeretné, nem pedig a Python 2-t. Használhatja a Python 2-t a Django-val, de a Python 3 a nyelv jelenje és jövője.

Ha éppen a Pythonba és a Djangoba kerül, használja a Python 3-at.

Lehet, hogy a Python 2 már van a számítógépen. Az írástól kezdve a Mac OS X Python 2 verzióval érkezik, és néhány Linux disztribúció is. Telepítse a Python 3 alkalmazást és használja azt. (Ha a Python két verziója van a számítógépen, nem lesz probléma, amint azt a következő lépésekben látni fogja.)

Ha nem biztos benne, hogy a Python melyik verziója van, írja be a python parancsot.

Meg fogja mondani. Például a következőt láthatja akkor, ha a Python 3.5.1 verzióját futtatja:

> piton
Python 3.5.1 (v3.5.1: 37a07cee5969, 2015. december 5., 21:12:44)
[GCC 4.2.1 (Apple Inc. build 5666) (3. pont)] Darwin-on
típus "Segítség", "szerzői jog", "kredit" vagy "engedély" további információért.

Ha a python futása v2-et mutat, akkor próbálja meg a python3-at. Ha telepítve van a Python 3, akkor erről meg kell mondania.

Frissítse a Python csomagkezelőt

A Python szállítása pip-rel, a Python csomagkezelővel történik. Ugyanakkor frissítenie kell (a Python telepítőcsomagjai nem kerülnek frissítésre minden alkalommal, amikor a frissítéseket frissítik). Szerencsére a pip frissíti a gyors terminálparancsot:

> pip install – frissítés pip

Python virtuális környezetek

Bármely Python projekt, beleértve a Django projektet is, általában különálló külső csomagok bevonását vonja maga után.

Ha sokat használ a Python-t, akkor végül verzió-konfliktusok merülnek fel – ez a projekt valamilyen v4.3-as verziót igényel, míg a projektnek szüksége van a v5.1-re. A megoldás a Python virtuális környezetek.

Számos virtuális környezeti eszköz létezik a Python számára. Virtualenv-et használunk. Először telepítse a pip segítségével:

> pip install virtualenv

Ezután állítson be egy virtuális környezetet Django projektjéhez. Hozzon létre egy új könyvtárat, amely tartalmazza a Django projekt (eke) t.

Ez a könyvtár tartalmazza a projektkönyvtárat és más dolgokat is, így azért, hogy ne zavarodjon meg, a legjobb, ha a projekt nevétől eltérő nevet is megad. Ezt nevezzük django-projekteknek.

Hozza létre a tárolókönyvtárat, majd futtassa a virtualenv fájlt a könyvtár belsejéből.

A virtualenv futtatásakor meghatározzuk a python3-ot, és nevet adunk a környezetnek (djenv), majd aktiváljuk a virtuális környezetet.

> mkdir django-projektek
> cd django-projektek
~ / Django-projektek > virtualenv -p python3 djenv
~ / Django-projektek > forrás djenv / bin / aktiválás
(djenv) ~ / django-projektek >

Most egy djenv nevű virtuális környezetben tartózkodik. A telepített vagy frissített pip-csomagok csak akkor lesznek elérhetők, ha ez a virtuális környezet aktiválva van.

A virtuális környezet deaktiválásához írja be a deaktiválás parancsot.

Gyors megjegyzés a dolgok elnevezéséről – a virtualenv, a Django és a Python legtöbb dokumentációja általában a venv nevét használja a példájuk virtuális környezetéhez.

Ha magad teszel, akkor ez zavaró lehet, mert a számítógépén több különféle fájlt is létrehozhat, és hasznos megjegyezni, hogy melyik.

A venv egy másik Python virtuális környezet eszköz neve is.

Hasznos megközelítés a környezet megnevezése, amely valami köze van a projekthez (például djenv a django környezethez), de bármit megnevezhet, amit szeret.

Telepítse a Django alkalmazást

Ez nagyon egyszerű:

(djenv) ~ / django-projektek > pip install django

Érdemes lehet kikapcsolni a virtuális környezetet és telepíteni a Django rendszert az egész rendszerben. Tőled függ.

Akárhogy is, a pip elkezdi a Django és minden hozzá tartozó függvény telepítését. Ez eltarthat egy ideig.

Projekt indítása

A „projektet” (általában) egyetlen, teljes weboldalnak (vagy potenciálisan webhelyek családjának) kell érteni..

A webhelynek több különféle funkciója lehet – blog, fórum, áruház, súgó.

Mindegyiket „alkalmazásnak” (vagy csak „alkalmazásnak”) hívják. Tehát a projekt alkalmazások gyűjteménye.

Ez a dolgok szerkezetének szempontjából fontos, de a dolgok nevének megadásában is fontos.

Képzelje el, hogy új webes alkalmazást szeretne létrehozni, amely lehetővé teszi az embereknek fényképek megosztását. Az a véleményed, hogy az egész webhely az „alkalmazás”.

De ha a Django projektet a photo-share-app névvel (vagy bármivel) inicializálja, akkor összezavarod a duplikált könyvtárnevekkel.

A Django projekt felépítése

A Django projekt könyvtárszerkezete így néz ki:

– /Projekt neve/
– Projekt neve/
– App név/
– App név/
– App név/

A projekt első inicializálásakor megkapja a legmagasabb szintű projektkönyvtárat, a második pedig benne.

A felső szint tartályként szolgál a fennmaradó rész számára. A második szintnek konfigurációs fájlja van a projekt egészére.

Az éppen létrehozott új alkalmazás egy (vagy több) további alkalmazáskönyvtárban lesz.

Ez bosszantást okoz. Feltételezve, hogy egy fantasztikus új webes alkalmazást épít egy fantasztikus névvel (nevezzük úgy), ha nem gondolsz erre, a következő lesz:

– / Részletesen /
– Részletesen /
– ?… mit kellene neveznem a dolognak, amit építek … /

Íme egy javaslat:

– / Wiht_site /
– wiht_site /
– wiht_app /

Ez mindent egyértelművé és könnyen megjegyezhetővé tesz. Ezenkívül megkönnyíti a használni kívánt általános weboldalak egyszerű bekapcsolását.

Vagy készíthet saját magának további egyedi alkalmazásokat is, ha azok önálló modulként vannak értelme:

– / Wiht_site /
– wiht_site /
– wiht_app /
– harmadik fél blog-app /
– harmadik fél fórum-app /
– Részletesen-CRM-app /

A Django Docs a mysite-t használja, és ez példákra is jó. Minden projekthez egyedi nevet szeretne.

(Természetesen nem kell új alkalmazást építenie a Django használatához. Elkészíthet egy projektet, és felhasználhatja a meglévő alkalmazások gyűjteményét.

Ilyen módon összetett, többfunkciós webhelyet készíthet és futtathat elég gyorsan, és később rugalmasságot élvezhet vele épített alkalmazások hozzáadásakor.)

(Végül) inicializálja a projektet

Bármelyik „konténer” könyvtárban (a fenti / django-projekteket használtuk) és aktiválva a virtuális környezetet, inicializálja az új projektet a django-admin paranccsal.

(djenv) ~ / django-projektek > django-admin startproject wiht_site

Most már:

– / Wiht_site /
– manage.py
– wiht_site /
– __init__.py
– settings.py
– urls.py
– wsgi.py

Most futtassa a tesztszervert, hogy megbizonyosodjon arról, hogy minden helyesen történt-e.

(djenv) ~ / django-projektek > cd wiht_site
(djenv) ~ / django-projektek / wiht_site > python manage.py runerver

Kapsz néhány eredményt, például:

Rendszer-ellenőrzések elvégzése…

A rendszer ellenőrzése nem azonosított problémákat (0 elnémítva).

Nem alkalmazott áttelepítéseid vannak; Előfordulhat, hogy alkalmazás nem működik megfelelően, amíg nem alkalmazzák őket.
Futtassa a ‘python manage.py migrációt’, és alkalmazza őket.

2016. április 22. – 17:45:53
Django 1.9-es verzió, a ‘wiht_site.settings’ beállításokkal
A fejlesztői kiszolgáló indítása a következő címen: http://127.0.0.1:8000/
Lépjen ki a szerverről a CONTROL-C segítségével.

Nyissa meg a http://127.0.0.1:8000 weblapot egy böngészőben, és látnia kell, hogy valami működik: egy “Welcome to Django” üzenet..

Az első alkalmazás inicializálása

Innentől tegyük fel, hogy mindig a legmagasabb szintű wiht_site könyvtárban (alkönyvtárban) vagyunk, aktiválva a djenv környezetet.

Ha ezt látja a példákban:

>

Tegyük fel, hogy itt vagy:

(djenv) ~ / django-projektek / az alkalmazáson keresztül >

Hozzon létre egy új alkalmazást a manage.py segítségével.

> python manage.py startapp wiht_app

Ez létrehoz egy új könyvtárat, / wiht_app /, a következő tartalommal:

– __init__.py
– admin.py
– apps.py
– migráció /
– __init__.py
– models.py
– tests.py
– views.py

Most telepítenie kell az alkalmazást. Nyissa meg a /wiht_site/wiht_site/settings.py oldalt és keresse meg az INSTALLED_APPS oldalt. Ezt szerkeszteni kell az új alkalmazás felvételéhez.

INSTALLED_APPS = [
‘Wiht_app’,
‘Django.contrib.admin’,
‘Django.contrib.auth’,
‘Django.contrib.contenttypes’
‘Django.contrib.sessions’,
‘Django.contrib.messages’,
‘Django.contrib.staticfiles’,
]

Valami fejlesztése

A Django alkalmazások valami közel állnak a Model-View-Controller architektúrához, amelyet a Django dokumentációja néha Model-View-Template-nak hív..

Ez egy könnyen alkalmazható, iteratív fejlesztési mintához vezet:

  • dolgozzon a modellen, meghatározva, hogy milyen típusú adatokat követni fog, és hogyan kapcsolódik egymáshoz;
  • dolgozzon a Nézeten, meghatározva az adatokhoz való hozzáférés módját és az adatkezelés módját;
  • dolgozzon a sablonon, meghatározva, hogy az adatok hogyan néznek ki, amikor a felhasználó megjeleníti őket, vagy egy másik alkalmazás felhasználja azokat.
Modellek és migrációk

Az új funkciók felépítése általában a modellek létrehozásával kezdődik. A modellek olyan osztályok (OOP értelemben), amelyek meghatározzák a rendszer különféle objektumait, és hogyan kapcsolódnak egymáshoz. Tehát egy blog alkalmazásban lehetnek modellek a Bejegyzés, az oldal, a kategória, a megjegyzés és így tovább – esetleg a megjegyzés egy alosztály (egyfajta), és lehet, hogy a hozzászólások és az oldalak a ContentItem alosztályai..

A modelleket az egyes alkalmazások Model.py fájljában írják. Itt kezdődik egy nagyon egyszerű modell a blogbejegyzésekhez.

a django.db importmodellekből
a django.contrib.auth.models felhasználói felhasználótól

# Készítsen modelleket itt.
osztályos üzenet (modellek.modell):

cím = modellek.CharField (
MAX_LENGTH = 100,
)

slug = models.SlugField (
egyedi = True,
)

kivonat = modellek.TextField (
MAX_LENGTH = 255,
)

content = models.TextField (
blank = True,
)

szerző = models.ForeignKey (
használó,
)

Létrehozva = modellek.DateTimeField (
auto_now_add = True,
)

def __str __ (önálló):
vissza az ön címe

A Django-nak saját Object Relational Mapper (ORM) van, amely egy réteg absztrakciót biztosít az adatbázishoz. Ez lehetővé teszi az adatmodell meghatározását anélkül, hogy egy adott adatbázis-kezelő rendszerre hivatkozna, és anélkül, hogy SQL-t kellene írni.

A modellek hozzáadásakor létrehozza és futtatja az áttelepítéseket. Az áttelepítés az SQL-parancsok automatikusan létrehozott halmaza, amely megváltoztatja az adatbázis kialakítását a modellekhez igazítva – a Django ORM lefordítja az Ön modelleit SQL áttelepítésekkel.

Mielőtt ezt megtenné, beállítania kell az adatbázist, és össze kell kapcsolnia. Nagyon sok lehetőség van itt, de a legtöbb Django felhasználó inkább a PostgreSQL-t részesíti előnyben, és vannak olyan különleges PostgreSQL eszközök a Django számára, amelyek más adatbázisokhoz nem állnak rendelkezésre.

Miután az adatbázis fut, az áttelepítheti.

> python manage.py makemigrations
> python manage.py migráció

admin

A Django automatikus adminisztrátori nézetet biztosít az Ön adataihoz, így szinte azonnal elvégezheti az alapvető CRUD műveleteket a modellekkel. És ha a szerkesztési felhasználói felület igényei nem különösebben összetettek, akkor egyszerűen csak használhatja a Rendszergazda webhelyet anélkül, hogy saját szerkesztési nézeteit készítené. Csak annyit kell tennie, hogy regisztrálja a modellt az Admin modulban. Ezt az admin.py alkalmazásban hajtják végre, az alkalmazás könyvtárában.

from django.contrib import admin
a .models import posta

admin.site.register (Post)

A bejelentkezéshez és az adminisztrátorhoz való hozzáféréshez hozzon létre egy super-felhasználót a parancssorból.

> python manage.py loobkezelő

Kövesse a terminálon belüli felhasználónév, e-mail és jelszó megadását. Ezután indítsa el a szervert:

> python manage.py runerver

És be kell tudnia jelentkeznie a http://127.0.0.1:8000/admin/ címen. Ha minden jól van beállítva, akkor képesnek kell lennie egyszerű blogbejegyzések megtekintésére, hozzáadására, szerkesztésére és törlésére.

Ideje lenne egy maroknyi minta hozzászólás létrehozásához. A következő lépés értelmesebbé válik.

A kilátás

Djangóban a „Nézet” nem az elülső képernyőkód (ezt „sablonnak” hívják). Amit Django nézetnek hív, inkább „Kezelőként” hasonlít más keretekben. Ez egy olyan funkció, amely argumentumként HTTP kérést fogad és válaszot ad vissza. Jellemzően a válasz egy weboldal tartalma, amely akkor elérhető sablonból; a válasz lehet átirányítás, hibaüzenet, fájl vagy valami más is.

A leggyakoribb helyzet az, hogy egy adott tartalomra vonatkozó kérelmet (például egy adott hozzászólást) kell küldeni, majd visszatérni az adott tartalomhoz kapcsolódó összes adathoz (a cím, a kivonat, a tartalom, a szerző). Egy másik általános helyzet az, hogy meg akarja jeleníteni a tartalomelemek listáját, például egy blog vagy a hírcsatorna első oldalán.

A Django beépített általános nézeteket kínál ezek gyors megvalósításához. A kettő, amelyet használunk, a ListView és az DetailView. Ha kiterjeszteni szeretné őket, vagy saját nézeteket szeretne létrehozni, akkor ezt megteszi a Views.py webhelyen, de a jelenlegi helyzetben fogjuk használni őket..

Most csak ezeket a nézeteket kell leképeznünk az URL-ekkel. A /wiht_site/urls.py mappában be kell mutatnia az alkalmazás-specifikus URL leképezését.

a django.conf.urls import URL-ről, tartalmazza
from django.contrib import admin

urlpatterns = [
url (r ‘^ admin /’, admin.site.urls),
url (r ‘^’, beletartozik (‘wiht_app.urls’)),
]

Ezután szerkessze az alkalmazás URL-jét.py.

a django.conf.urls import URL-ről, tartalmazza
tól től . nézetek importálása
from django.views.generic import ListView, DetailView
a .models import posta

urlpatterns = [
url (
r ‘^ blog /

Az egyes mintákat meghatározó url () függvény vesszővel elválasztott argumentumok sorozatával rendelkezik:

  • egy reguláris kifejezés, amely meghatározza az URL-mintát a bejövő kérelmekkel való egyezéshez;
  • egy meghatározott nézet argumentumokkal:
    • Modell;
    • sablon fájl neve;
  • ennek az URL mintának a neve.

A fenti minták illesztik a / blog / és / blog / post-slug / URL mintákat a ListView és DetailView elemhez, majd meghatározzák a sablonjaikat (index.html és post.html).

Sablon

Csak egy sablon készítése a tartalom megjelenítésére. Django Jinja sablonokat használ.

Hozzon létre három új fájlt:

/wiht_site/wiht_app/templates/wiht_app/main.html

{% block content%}
{% endblock%}

/wiht_site/wiht_app/templates/wiht_app/index.html

{% kiterjeszti "wiht_app / main.html" %}

{% block content%}

Hozzászólások

{% az objektumlistába való belépéshez%}

{{entry.title}}

{{entry.excerpt}}

{% endfor%}

{% endblock%}

/wiht_site/wiht_app/templates/wiht_app/post.html

{% kiterjeszti "wiht_app / main.html" %}

{% block content%}

{{ postai cím }}

{{post.author}}
Feladva: {{post.created}}
{{post.content}}

{% endblock%}

Gratulálunk, most rendelkeznie kell egy működő blog-alkalmazással.

További olvasmányok és források

Több útmutató, oktatóanyag és infographics található a kódoláshoz és fejlesztéshez:

  • Python bevezetés, források és GYIK: ez a cikk számos erőforrást tartalmaz, amelyek segítenek a Python profi válásban.
  • Webszerver átjáró interfész alapozó: Tanulja meg, hogyan kell ezt a specifikációt Python-keretrendszer használatához használni a Django-val.
  • Bevezetés a Ruby on Rails-hez: ez a cikk bemutatja a Python és a Django alternatíváját.

,
ListView.as_view (
lekérdezéskészlethez = Post.objects.all (). order_by ( „létrehozott”) [: 50],
sablon_neve =”wiht_app / index.html”
),
name =”post-lista”
),
url (
r’blog / (? p [a-zA-Z0-9] + (?: – [a-zA-Z0-9] +) *) / Az url () függvény, amely meghatározza az egyes mintákat, vesszősorral van elválasztva érvek:

  • egy reguláris kifejezés, amely meghatározza az URL-mintát a bejövő kérelmekkel való egyezéshez;
  • egy meghatározott nézet argumentumokkal:
    • Modell;
    • sablon fájl neve;
  • ennek az URL mintának a neve.

A fenti minták illesztik a / blog / és / blog / post-slug / URL mintákat a ListView és DetailView elemhez, majd meghatározzák a sablonjaikat (index.html és post.html).

Sablon

Csak egy sablon készítése a tartalom megjelenítésére. Django Jinja sablonokat használ.

Hozzon létre három új fájlt:

/wiht_site/wiht_app/templates/wiht_app/main.html

/wiht_site/wiht_app/templates/wiht_app/index.html

/wiht_site/wiht_app/templates/wiht_app/post.html

Gratulálunk, most rendelkeznie kell egy működő blog-alkalmazással.

További olvasmányok és források

Több útmutató, oktatóanyag és infographics található a kódoláshoz és fejlesztéshez:

  • Python bevezetés, források és GYIK: ez a cikk számos erőforrást tartalmaz, amelyek segítenek a Python profi válásban.
  • Webszerver átjáró interfész alapozó: Tanulja meg, hogyan kell ezt a specifikációt Python-keretrendszer használatához használni a Django-val.
  • Bevezetés a Ruby on Rails-hez: ez a cikk bemutatja a Python és a Django alternatíváját.

,
DetailView.as_view (
model = Hozzászólás,
sablon_neve ="wiht_app / post.html"),
name ="posta"
)
]

Az egyes mintákat meghatározó url () függvény vesszővel elválasztott argumentumok sorozatával rendelkezik:

  • egy reguláris kifejezés, amely meghatározza az URL-mintát a bejövő kérelmekkel való egyezéshez;
  • egy meghatározott nézet argumentumokkal:
    • Modell;
    • sablon fájl neve;
  • ennek az URL mintának a neve.

A fenti minták illesztik a / blog / és / blog / post-slug / URL mintákat a ListView és DetailView elemhez, majd meghatározzák a sablonjaikat (index.html és post.html).

Sablon

Csak egy sablon készítése a tartalom megjelenítésére. Django Jinja sablonokat használ.

Hozzon létre három új fájlt:

/wiht_site/wiht_app/templates/wiht_app/main.html

/wiht_site/wiht_app/templates/wiht_app/index.html

/wiht_site/wiht_app/templates/wiht_app/post.html

Gratulálunk, most rendelkeznie kell egy működő blog-alkalmazással.

web hosting kupon

Sokat keres a Django tárhelyén?
Az A2 Hosting a legfrissebb sebesség- és teljesítménytesztekben az 1. helyezett. Jelenleg akár 50% -ot megtakaríthat fejlesztői orientált tervein.
Használja ezt a kedvezményes linket
hogy megszerezzék az üzletet.

További olvasmányok és források

Több útmutató, oktatóanyag és infographics található a kódoláshoz és fejlesztéshez:

  • Python bevezetés, források és GYIK: ez a cikk számos erőforrást tartalmaz, amelyek segítenek a Python profi válásban.
  • Webszerver átjáró interfész alapozó: Tanulja meg, hogyan kell ezt a specifikációt Python-keretrendszer használatához használni a Django-val.
  • Bevezetés a Ruby on Rails-hez: ez a cikk bemutatja a Python és a Django alternatíváját.
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me