Django @ budapest.py június

Post on 03-Jul-2015

488 views 1 download

Transcript of Django @ budapest.py június

webes keretrendszermindenkinek

Farkas Szilveszterbudapest.py

2009. június 25.

tartalomtörténetalapok

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

hasznos alkalmazások

történet

Adrian HolovatyLawrence Journal-World, Kansas

1.0hamarosan 1.1

alapok

MVC

MTV

MTVModel

MTVTemplate

MTVView

ORMmodel

adatoknatív objektumok

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

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

AutoFieldBooleanFieldCharField

CommaSeparatedIntegerFieldDateField

DateTimeFieldDecimalFieldEmailFieldFileField

FilePathFieldFloatFieldImageField

IntegerFieldIPAddressField

NullBooleanFieldPhoneNumberField

PositiveIntegerFieldPositiveSmallIntegerField

SlugFieldSmallIntegerField

TextFieldTimeFieldURLField

USStateFieldXMLField

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

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

sablon rendszertemplate

alapvetően html

{% tagek %}

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

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

{{ változók }}

{{ valtozo }}

{{ objektum.tagvaltozo }}

{{ objektum.tagfuggveny }}

|szűrők

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

2008. 07. 11.

{{ html|escape }}

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

{{ meret|filesizeformat }}

234.5 MB

leszármaztatás

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

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

base.html

extended.html

nézetekview

kérés - válaszHttpRequest - HttpResponse

1. szabályHttpRequest objektumot kapunk

2. szabályHttpResponse objektumot kell visszaadnunk

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

urlconfnézetek hozzárendelése url-ekhez

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'),)

paraméterátadás

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'),)

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

formsűrlapok egyszerűen

mezőkhasonlóan a modellekhez

widgetek

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

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

modell → űrlap

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

beépített szolgáltatások

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

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

munkamenetek(sessions)

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

honosítás(internationalization)

unicode mindenhol

lapszámozás(pagination)

szerializációXML, JSON, Python, YAML

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

middleware-ek

tesztelés

kiegészítő szolgáltatások

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

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

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

flatpagesstatikus oldalak

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

form wizardtöbblépéses űrlapok

sitestöbb honlap egy telepítéshez

sitemapskeresőbarát oldalszerkezet biztosítása

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

webdesignLorem Ipsum generátor

hasznos alkalmazások

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

django-contact-formrugalmas kapcsolatfelvételi űrlap

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

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

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

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

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

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