Transcript
Page 1: Django @ budapest.py június

webes keretrendszermindenkinek

Farkas Szilveszterbudapest.py

2009. június 25.

Page 2: Django @ budapest.py június

tartalomtörténetalapok

beépített szolgáltatásokkiegészítő szolgáltatások

hasznos alkalmazások

Page 3: Django @ budapest.py június

történet

Page 4: Django @ budapest.py június

Adrian HolovatyLawrence Journal-World, Kansas

Page 5: Django @ budapest.py június

1.0hamarosan 1.1

Page 6: Django @ budapest.py június

alapok

Page 7: Django @ budapest.py június

MVC

Page 8: Django @ budapest.py június

MTV

Page 9: Django @ budapest.py június

MTVModel

Page 10: Django @ budapest.py június

MTVTemplate

Page 11: Django @ budapest.py június

MTVView

Page 12: Django @ budapest.py június

ORMmodel

Page 13: Django @ budapest.py június

adatoknatív objektumok

Page 14: Django @ budapest.py június

lekérdezésekbeépített nyelvi elemekkel támogatva

Page 15: Django @ budapest.py június

mezőtípusokbeépített validációval

Page 16: Django @ budapest.py június

AutoFieldBooleanFieldCharField

CommaSeparatedIntegerFieldDateField

DateTimeFieldDecimalFieldEmailFieldFileField

FilePathFieldFloatFieldImageField

IntegerFieldIPAddressField

NullBooleanFieldPhoneNumberField

PositiveIntegerFieldPositiveSmallIntegerField

SlugFieldSmallIntegerField

TextFieldTimeFieldURLField

USStateFieldXMLField

Page 17: Django @ budapest.py június

kapcsolatoktöbb-egy, több-több, egy-egy

Page 18: Django @ budapest.py június

class Article(models.Model): title = fields.CharField() body = fields.TextField() submitted = fields.DateTimeField() author = fields.ForeignKey(User) published = fields.BooleanField()

Page 19: Django @ budapest.py június

sablon rendszertemplate

Page 20: Django @ budapest.py június

alapvetően html

Page 21: Django @ budapest.py június

{% tagek %}

Page 22: Django @ budapest.py június

{% block "nev" %}Ide jöhet akármi.{% endblock %}

{% if feltetel %}Feltétel teljesült.{% else %}Nem teljesült a feltétel.{% endif %}

Page 23: Django @ budapest.py június

{{ változók }}

Page 24: Django @ budapest.py június

{{ valtozo }}

{{ objektum.tagvaltozo }}

{{ objektum.tagfuggveny }}

Page 25: Django @ budapest.py június

|szűrők

Page 26: Django @ budapest.py június

{{ datum|date:"Y. m. d." }}

2008. 07. 11.

{{ html|escape }}

<strong>Django</strong> (nem Django)

{{ meret|filesizeformat }}

234.5 MB

Page 27: Django @ budapest.py június

leszármaztatás

Page 28: Django @ budapest.py június

{% extends "base.html" %}{% block "title" %}Másik cím{% endblock %}

<head> <title>{% block "title" %}Oldal címe{% endblock %}</title></head>

base.html

extended.html

Page 29: Django @ budapest.py június

nézetekview

Page 30: Django @ budapest.py június

kérés - válaszHttpRequest - HttpResponse

Page 31: Django @ budapest.py június

1. szabályHttpRequest objektumot kapunk

Page 32: Django @ budapest.py június

2. szabályHttpResponse objektumot kell visszaadnunk

Page 33: Django @ budapest.py június

def nezet(request): response = HttpResponse() return response

Page 34: Django @ budapest.py június

urlconfnézetek hozzárendelése url-ekhez

Page 35: Django @ budapest.py június

urlpatterns = patterns('', (r'^cikkek/(\d{4})/$', 'oldalam.views.eves_archivum'), (r'^cikkek/(\d{4})/(\d{2})/$', 'oldalam.views.havi_archivum'), (r'^cikkek/(\d{4})/(\d{2})/(\d+)/$', 'oldalam.views.oldal_reszletek'),)

Page 36: Django @ budapest.py június

paraméterátadás

Page 37: Django @ budapest.py június

urlpatterns = patterns('', (r'^szavazasok/$', 'oldalam.szavazo.views.kezdo'), (r'^szavazasok/(?P<azon>\d+)/$', 'oldalam.szavazo.views.reszletek'), (r'^szavazasok/(?P<azon>\d+)/eredmenyek/$', 'oldalam.szavazo.views.eredmenyek'), (r'^szavazasok/(?P<azon>\d+)/szavazas/$', 'oldalam.szavazo.views.szavazas'),)

Page 38: Django @ budapest.py június

def reszletek(request, azon): sz = get_object_or_404(Szavazas, pk=azon) return render_to_response('szavazas_reszletek.html', {'szavazas': sz})

Page 39: Django @ budapest.py június

formsűrlapok egyszerűen

Page 40: Django @ budapest.py június

mezőkhasonlóan a modellekhez

Page 41: Django @ budapest.py június

widgetek

Page 42: Django @ budapest.py június

validálásbeépített, vagy egyedi

Page 43: Django @ budapest.py június

validálásmezőnként, vagy globálisan

Page 44: Django @ budapest.py június

modell → űrlap

Page 45: Django @ budapest.py június

class ArticleForm(forms.ModelForm): class Meta: model = Article

Page 46: Django @ budapest.py június

beépített szolgáltatások

Page 47: Django @ budapest.py június

adatbázis hozzáférésMySQL, Oracle, PostgreSQL, SQLite

Page 48: Django @ budapest.py június

adatbázis hozzáféréstranzakciókezeléssel

Page 49: Django @ budapest.py június

munkamenetek(sessions)

Page 50: Django @ budapest.py június

gyorsítótárazás(caching)

Page 51: Django @ budapest.py június

honosítás(internationalization)

Page 52: Django @ budapest.py június

unicode mindenhol

Page 53: Django @ budapest.py június

lapszámozás(pagination)

Page 54: Django @ budapest.py június

szerializációXML, JSON, Python, YAML

Page 55: Django @ budapest.py június

fájlfeltöltésbármekkora fájlmérettel

Page 56: Django @ budapest.py június

middleware-ek

Page 57: Django @ budapest.py június

tesztelés

Page 58: Django @ budapest.py június

kiegészítő szolgáltatások

Page 59: Django @ budapest.py június

authfelhasználók, csoportok és jogosultságok

Page 60: Django @ budapest.py június

adminadminisztrációs felület pár sor kóddal

Page 61: Django @ budapest.py június

databrowse„adminisztrációs felület látogatóknak”

Page 62: Django @ budapest.py június

flatpagesstatikus oldalak

Page 63: Django @ budapest.py június

form previewűrlapon szereplő adatok megerősítése beküldés előtt

Page 64: Django @ budapest.py június

form wizardtöbblépéses űrlapok

Page 65: Django @ budapest.py június

sitestöbb honlap egy telepítéshez

Page 66: Django @ budapest.py június

sitemapskeresőbarát oldalszerkezet biztosítása

Page 67: Django @ budapest.py június

syndicationRSS és Atom hírforrások létrehozása

Page 68: Django @ budapest.py június

webdesignLorem Ipsum generátor

Page 69: Django @ budapest.py június

hasznos alkalmazások

Page 70: Django @ budapest.py június

django-registrationfelhasználók regisztrációjához

Page 71: Django @ budapest.py június

django-contact-formrugalmas kapcsolatfelvételi űrlap

Page 72: Django @ budapest.py június

django-taggingbármelyik modellünket címkézhetjük vele

Page 73: Django @ budapest.py június

django-openidOpenID támogatás implementációja

Page 74: Django @ budapest.py június

és még sokan mások...Google Code

Page 75: Django @ budapest.py június
Page 76: Django @ budapest.py június

Köszönöm a figyelmet!http://szilveszterfarkas.com/

Page 77: Django @ budapest.py június

KöszönetTörök Gábor

http://gábor.20y.hu/django/