Download pdf - Django Show

Transcript
Page 1: Django Show

Django Show

Page 2: Django Show

Um pouco sobre mim

● Formado em Ciência da Computação● Entusiasta de Python e Django● Colaborador do DjangoBrasil e do PythonBrasil

● Desenvolvedor na globo.com

Page 3: Django Show

Django Show não é...

● Um show de uma boy band● Uma apresentação de um indiano cantando barby girl

● Nem uma demonstração de magia

Page 4: Django Show

Welcome to the Django!

Page 5: Django Show

Arquitetura

● Model● View● Template

Page 6: Django Show

Model

from django.db import modelsfrom datetime import datetime

class Link(models.Model): title = models.CharField(max_length = 255) date = models.DateTimeField(default = datetime.now) url = models.URLField(verify_exists = False) description = models.CharField(max_length = 255)

def __unicode__(self): return self.description

Page 7: Django Show

View

from django.shortcuts import render_to_responsefrom models import Link

def index(request): links = Link.objects.all() return render_to_response('index.html', {'links':links})

Page 8: Django Show

Template{% extends "base.html" %}

{% block content %}

{% for link in links %} <p> <a href="{{ link.url }}"> {{ link.title }} </a> - {{ link.date|date:"d/m/Y" }} </p>{% endfor %}

{% endblock %}

Page 9: Django Show

Manipulando os dados>>> from mysite.bookmarks.models import *>>> l = Link()

>>> l.title = 'Python Brasil'>>> l.description = 'Site da comunidade Python no Brasil'>>> l.url = 'http://www.pythonbrasil.com.br'>>> l.save()>>> l<Link: Site da comunidade Python no Brasil>>>> l = Link()>>> l.title = 'Django Brasil'>>> l.description = 'Site da comunidade Django no Brasil'>>> l.url = 'http://www.djangobrasil.org'>>> l.save()>>>

Page 10: Django Show
Page 11: Django Show

Geração de Formulários

● Model x View x Template● Model x View (Forms + Metodos) x Templates

Page 12: Django Show

from django.forms import ModelFormfrom models import Link

class LinkForm(ModelForm):

class Meta: model = Link

Page 13: Django Show
Page 14: Django Show

Interface de Administração

● Model x ModelAdmin

Page 15: Django Show

from django.contrib import adminfrom models import Link

admin.site.register(Link)

Page 16: Django Show
Page 17: Django Show

Middleware

views

Page 18: Django Show

Middleware

MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',)

Page 19: Django Show

Algumas middlewares

● Session● Authentication● Log● Gzip

Page 20: Django Show

Mitos e verdades

● Django e monolítico● Django não escala● O deploy no Django é difícil e complicado

Page 21: Django Show

Django e ZODB

● desafio ou loucura? =)

Page 22: Django Show

import ZODB.config

class ZODBConnection(object):

def __init__(self): db = ZODB.config.databaseFromURL(zodb_url)

connection = db.open() self.root = connection.root()

ZODBInstance = ZODBConnection()

Page 23: Django Show

from djangozodb import ZODBInstance

class ZODBSession(object): def process_request(self, request): request.zodb = ZODBInstance

Page 24: Django Show

Outros exemplos

● Django + SQLAlchemy (tranquil)● Django + Storm● Django + CouchDb● Django + SQLObject● Django + Seu ORM Favorito● Django + BigTable on Google App Engine

Page 25: Django Show

Mais um exemplo

● Django + REST

Page 26: Django Show

Cache

● Cache em disco● Cache em memória● Cache em banco

Page 27: Django Show

Cache

● Cache em disco● Cache em memória● Cache em banco ???? =\

Page 28: Django Show

Deploy

● Apache = mod_python● Apache = mod_wsgi● Apache = fast_cgi● Lighttpd = fast_cgi● Nginx = fast_cgi● ...

Page 29: Django Show

Em todo lugar...

● Cpython● Jython● IronPython● PyPy ?????

Page 30: Django Show

Em todo lugar...

● Cpython● Jython● IronPython● PyPy =)

Page 31: Django Show

Extra

● Authentication Backend● Signals● Django + {{ sua template system }}

Page 32: Django Show

Duvidas?

● Andrews Medina● [email protected]● http://www.andrewsmedina.com