Ohjelmointi

Django-opetusohjelma: Aloita Django 2.0: n käyttö

Django on kaikille sopiva Python-verkkokehys, joka on saanut inspiraationsa Ruby on Rails -sovelluksesta ja käyttää monia samoja metaforoja tehdäksesi verkkokehityksen nopeaa ja helppoa. Täysin ladattu ja joustava Django on tullut yksi Pythonin yleisimmin käytetyistä verkkokehyksistä.

Django sisältää käytännössä kaiken mitä tarvitset kaiken kokoisen verkkosovelluksen rakentamiseen, ja sen suosion ansiosta on helppo löytää esimerkkejä ja apua erilaisiin tilanteisiin. Plus Django tarjoaa työkaluja, joiden avulla sovelluksesi voi kehittyä ja lisätä ominaisuuksia sulavasti ja siirtää sen tietomallin (jos sellainen on).

Djangolla on myös maine monimutkaisuutena, sillä tarvitaan monia komponentteja ja paljon "konepellin alla" -kokoonpanoa. Todellisuudessa voit saada yksinkertaisen sovelluksen käyttöön suhteellisen lyhyessä järjestyksessä ja laajentaa sen toimintoja sieltä tarvittaessa.

Tässä oppaassa käymme läpi alkeellisen Django 2.0 -sovelluksen luomisen ja kosketamme lyhyesti tärkeimpiä ominaisuuksia, joita se tarjoaa web-kehittäjille.

Päivittäminen Django 1.x: stä

Jos sinulla on kokemusta Djangon aikaisemmasta, 1.x-versiosta, nämä ovat tärkeimmät tietoiset muutokset:

  • Django 2.0 vain tukee Python 3.4 ja uudempia. Python 2.x -ohjelmaa ei tueta Djangon tulevissa versioissa.
  • Django 2 noudattaa Python 3: n mallia natiivien Unicode-merkkijonojen käyttämisestä aina kun mahdollista. Jotkut Django-toiminnot eivät enää hyväksy ohitusohjeita syötteeksi.

On monia muita taaksepäin yhteensopimattomia muutoksia, mutta ne ovat kaksi merkittävintä, varsinkin kun aloitetaan uusia hankkeita.

Djangon ydinkirjastojen asentaminen

Django 2.0: n asentamiseen tarvitaan Python 3.4 tai uudempi. Sitten helpoin tapa asentaa Django on Pythonin kautta pip apuohjelma:

pip asenna django

Tämä asentaa Django-ydinkirjastot ja django-admin komentorivi-apuohjelma, jota käytetään Django-projektien hallintaan.

Jos haluat työskennellä useiden Django-versioiden kanssa vierekkäin, luo virtuaaliympäristö, asenna haluamasi Django-versio sinne ja käytä sitä kyseisessä Django-projektissa.

Huomaa, että useiden luomiseen ei tarvitse käyttää virtuaalisia ympäristöjä hankkeita yhdellä Djangon esiintymällä. Tarvitset heitä vain Djangon eri pisteversioiden käyttämiseen puitteet eri hankkeiden kanssa.

Uuden Django-projektin luominen

Django-esiintymät on jaettu kahteen tasoon: hankkeita ja sovelluksia.

  • A projekti on esimerkki Djangosta, jolla on omat tietokantakokoonpanonsa, asetukset ja sovellukset. On parasta ajatella, että projekti on paikka tallentaa kaikki käyttämäsi sivustotason kokoonpanot.
  • An sovellus on projektin alajako, jolla on oma reitti ja renderöintilogiikka. Useita sovelluksia voidaan sijoittaa yhteen Django-projektiin.

Voit luoda uuden Django-projektin tyhjästä kirjoittamalla hakemiston, johon haluat tallentaa projektin, ja kirjoittamalla:

django-admin startproject

missä on sekä projektin että alihakemiston nimi, johon projekti tallennetaan. Muista valita nimi, joka ei todennäköisesti törmää Pythonin tai Djangon sisäisesti käyttämään nimeen. Tällainen nimi myproj toimii hienosti.

Tuloksena olevan hakemiston tulisi sisältää amanage.py tiedosto, jota käytetään ohjaamaan sovelluksen toimintaa komentoriviltä, ​​ja toinen alihakemisto (myös projektin nimellä), joka sisältää seuraavat tiedostot:

  • An __init__.py tiedosto, jota Python käyttää nimeämään alihakemiston koodimoduuliksi.
  • settings.py, joka pitää sisällään projektissa käytetyt asetukset. Monet yleisimmistä asetuksista on valmiiksi täytetty sinulle.
  • urls.py, jossa luetellaan Django-projektisi käytettävissä olevat reitit tai URL-osoitteet tai joihin projekti palauttaa vastaukset.
  • wsgi.py, jota WSGI-yhteensopivat verkkopalvelimet, kuten Apache HTTP tai Nginx, käyttävät projektisi sovellusten palvelemiseen.

Testaa projektia ennen kaikkea varmistaaksesi, että se toimii. Projektisi sisältävän hakemiston komentoriviltä manage.py tiedosto, suorita:

python manage.py RunServer

Tämän pitäisi käynnistää kehityspalvelin, joka on käytettävissä osoitteessa //127.0.0.1:8000/. Käy tällä linkillä ja sinun pitäisi nähdä yksinkertainen tervetulosivu, joka kertoo, että asennus onnistui.

Huomaa, että kehityspalvelimen pitäisi ei käyttää Django-projektin palvelemiseen yleisölle. Se ei ole mittakaavassa käsittelemään tarvittavaa liikennettä.

Django-sovelluksen luominen

Seuraavaksi meidän on luotava sovellus tämän projektin sisään. Siirry samaan hakemistoon kuin manage.py ja anna tämä komento:

python manage.py startapp myapp

Tämä luo alihakemiston sovellukselle nimeltä myapp joka sisältää seuraavat:

  • A muuttoliikkeet hakemistoon. Sisältää koodin, jota käytetään sivuston siirtämiseen sen tietomallin versioiden välillä.
  • admin.py. Sisältää esineitä, joita Djangon sisäänrakennetut hallintatyökalut käyttävät. Jos sovelluksessasi on järjestelmänvalvojan käyttöliittymä tai etuoikeutetut käyttäjät, määritä liittyvät objektit täällä.
  • apps.py. Tarjoaa sovelluksen kokoonpanotiedot projektille yleensä AppConfig esine.
  • models.py. Sisältää objekteja, jotka määrittelevät tietorakenteet, joita sovellus käyttää tietokantojen kanssa.
  • tests.py. Sisältää kaikki testit, joita käytetään varmistamaan, että sivustosi toiminnot ja moduulit toimivat tarkoitetulla tavalla.
  • views.py. Sisältää toimintoja, jotka antavat ja palauttavat vastauksia.

Aloittaaksemme työskennellä sovelluksen kanssa, meidän on ensin rekisteröitävä se projektiin. Voit tehdä tämän muokkaamalla myproj / settings.py ja lisää viiva INSTALLED_APPS lista:

INSTALLED_APPS = [’myapp.apps.MyappConfig’, ’django.contrib.admin’, ... 

Jos katsot sisään myapp.apps, näet ennalta luodun objektin nimeltä MyappConfig, johon viittaamme tässä.

Reittien ja näkymien lisääminen Django-sovellukseesi

Django-sovellukset seuraavat pyyntöjen käsittelyn perusmallia:

  • Kun saapuva pyyntö vastaanotetaan, Django jäsentää a-osoitteen URL-osoitteen reitti soveltaa sitä.
  • Reitit on määritelty kohdassa urls.py, ja jokainen reitti on linkitetty a näkymäeli funktio, joka palauttaa asiakkaalle palautettavat tiedot. Näkymät voivat sijaita missä tahansa Django-projektissa, mutta ne on järjestetty parhaiten omiin moduuleihinsa.
  • Näkymät voivat sisältää a sapluunaeli koodi, joka muotoilee pyydetyt tiedot tietyn mallin mukaisesti.

Saadaksemme käsityksen siitä, miten kaikki nämä kappaleet sopivat yhteen, muokkaamme mallisovelluksen oletusreittiä palauttamaan mukautettu viesti.

Reitit on määritelty kohdassa urls.py nimettyyn luetteloon URL-mallit. Jos avaat näytteen urls.py, tulet näkemään URL-mallit jo ennalta määritelty:

urlpatterns = [polku (’admin /’, admin.site.urls),] 

polku function - sisäänrakennettu Django - ottaa reitin ja näkymäfunktion argumentteina ja luo viitteen URL-polkuun. Django luo oletusarvoisesti admin polku, jota käytetään sivuston hallintaan, mutta meidän on luotava omat reitit.

Lisää uusi merkintä, jotta koko tiedosto näyttää tältä:

osoitteesta django.contrib tuonti järjestelmänvalvoja osoitteesta django.urls tuonti sisältä, polku urlpatterns = [polku (’admin /’, admin.site.urls), polku (’myapp /’, sisälly (’myapp.urls’))] 

sisältää toiminto kehottaa Djangoa etsimään lisää reittikuviotietoja tiedostosta myapp.urls. Kaikki tiedostossa olevat reitit liitetään ylätason reittiin myapp (esimerkiksi., //127.0.0.1:8080/myapp).

Luo seuraavaksi uusi urls.py sisään myapp ja lisää seuraava:

osoitteesta django.urls tuontipolku osoitteesta. tuoda näkymiä urlpatterns = [polku (’’, views.index)] 

Django valmistaa kauttaviivan jokaisen URL-osoitteen alkuun, jotta määritetään sivuston juuri (/), toimitamme vain tyhjän merkkijonon URL-osoitteeksi.

Muokkaa tiedostoa nyt myapp / views.py joten se näyttää tältä:

from django.http import HttpResponse def index (pyyntö): return HttpResponse (“Hei, maailma!”) 

django.http.HttpResponse on sisäänrakennettu Django, joka luo HTTP-vastauksen toimitetusta merkkijonosta. Ota huomioon, että pyyntö, joka sisältää saapuvan HTTP-pyynnön tiedot, on välitettävä ensimmäisenä parametrina näkymäfunktiolle.

Pysäytä ja käynnistä kehityspalvelin uudelleen ja siirry kohtaan //127.0.0.1:8000/myapp/. Sinun pitäisi nähdä Hei maailma! näkyvät selaimessa.

Lisäämällä reittejä muuttujilla Djangossa

Django voi hyväksyä reittejä, jotka sisältävät muuttujia osana syntaksiaan. Oletetaan, että haluat hyväksyä URL-osoitteet, joilla on muoto vuosi /. Voit tehdä sen lisäämällä seuraavan merkinnän kohtaanURL-mallit:

polku (‘vuosi /’, näkymät. vuosi) 

Katselutoiminto näkymät. vuosi sitten käytettäisiin reittejä kuten vuosi / 1996, vuosi / 2010ja niin edelleen muuttujan kanssa vuosi välitetään parametrina käyttäjälle näkymät. vuosi.

Voit kokeilla tätä itse lisäämällä yllä olevan URL-mallit pääsy myapp / urls.pyja lisää tämä toiminto sitten myapp / views.py:

def vuosi (pyyntö, vuosi): palauta HttpResponse (‘Vuosi: {}’. muoto (vuosi)) 

Jos navigoit kohtaan / myapp / vuosi / 2010 sivustollasi, sinun pitäisi nähdä Vuosi: 2010 näytetään vastauksena. Huomaa, että reitit kuten / myapp / vuosi / rutabaga tuottaa virheen, koska int: muuttujan rajoitus vuosi sallii vain kokonaisluvun kyseisessä paikassa. Reiteille on käytettävissä monia muita muotoiluvaihtoehtoja.

Aikaisemmissa Djangon versioissa oli monimutkaisempi ja vaikeasti jäsennettävä syntaksi reittejä varten. Jos sinun on vielä lisättävä reittejä käyttämällä vanhaa syntaksia - esimerkiksi yhteensopivuuden taaksepäin vanhan Django-projektin kanssa - voit tehdä sen käyttämällä django.urls.re_path toiminto.

Django-mallit

Djangon sisäänrakennettua mallikieliä voidaan käyttää verkkosivujen luomiseen tiedoista.

Django-sovellusten käyttämät mallit tallennetaan hakemistoon, joka on projektin keskeinen osa: / templates //. Meidän myapp projekti, hakemisto olisi myapp / templates / myapp /. Tämä hakemistorakenne saattaa tuntua hieman hankalalta, mutta Django voi etsiä malleja useista paikoista, joten näin vältetään nimien törmäykset samojen nimien mallien välillä useissa sovelluksissa.

Sinunmyapp / templates / myapp / hakemistoon, luo tiedosto nimeltä vuosi.html jonka sisältö on seuraava:

Vuosi: {{vuosi}} 

Kaikkia mallin kaksoiskiharoiden aaltosulkeissa olevia arvoja käsitellään muuttujina. Kaikkea muuta kohdellaan kirjaimellisesti.

Muuttaa myapp / views.py näyttää tältä:

from django.shortcuts tuoda renderöinti osoitteesta django.http import HttpResponse def index (pyyntö): return HttpResponse (“Hello, world!”) def year (request, year): data = {'year': year} return render (request, 'myapp / year.html', data) 

tehdä Django-pikakuvake (useiden sisäänrakennettujen yhdistelmien helppokäyttöisyys) vie nykyisen pyyntö esine, etsii mallia myapp / year.html käytettävissä olevien mallipaikan luettelossa ja ohittaa sanakirjan tiedot siihen mallin kontekstina.

Django-mallien tiedoissa suoritettavan käsittelyn määrä on tarkoituksella melko rajallinen. Djangon filosofia on valvoa esityksen ja liiketoimintalogiikan erottamista aina kun mahdollista. Näin voit selata iteroitavaa objektia ja suorittaa jos / sitten / muu testejä, mutta mallin tietojen muokkaaminen on paheksuttua.

Esimerkiksi yksinkertainen "jos" -testi voidaan koodata tällä tavalla:

{% if year> 2000%} 21. vuosisadan vuosi: {{year}} {% else%} 2000-lukua edeltävä vuosi: {{year}} {% endif%} 

{% ja %} merkit rajaavat koodilohkot, jotka voidaan suorittaa Djangon mallikielellä.

Jos haluat käyttää kehittyneempää mallinkäsittelykieltä, voit vaihtaa muita, kuten Jinja2 tai Mako. Django sisältää back-end-integraation Jinja2: lle, mutta mitä tahansa merkkijonoa palauttavaa mallikieliä voidaan käyttää - esimerkiksi palauttamalla kyseinen merkkijono HttpResponse esine kuin meidän "Hei maailma!" reitti.

Seuraavat vaiheet Djangon kanssa

Tässä nähty kattaa vain Django-sovelluksen peruselementit. Django sisältää paljon muita komponentteja, joita voidaan käyttää verkkoprojektissa. Kaikista näistä on syytä keskustella yksityiskohtaisesti erikseen, mutta jätän teille lyhyen yleiskatsauksen:

  • Tietokannat ja tietomallit. Djangon sisäänrakennettua ORM: ää voidaan käyttää määrittelemään tietorakenteet ja niiden väliset suhteet sovelluksellesi sekä siirtoratat näiden rakenteiden versioiden välillä.

  • Lomakkeet. Django tarjoaa yhdenmukaisen tavan näkymille toimittaa käyttäjälle syöttölomakkeita, hakea tietoja, normalisoida tulokset ja tarjota johdonmukainen virheilmoitus.

  • Turvallisuus ja apuohjelmat. Django sisältää monia sisäänrakennettuja toimintoja välimuistiin tallentamiseen, lokien kirjaamiseen, istuntojen käsittelyyn, staattisten tiedostojen käsittelyyn ja URL-osoitteiden normalisointiin. Se myös niputtaa työkaluja yleisiin tietoturvatarpeisiin, kuten salaustodistusten käyttämiseen, tai suojautumiseen sivustojen väliseltä väärennöltä tai napsautuksilta.

$config[zx-auto] not found$config[zx-overlay] not found