SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
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
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
Welcome to the Django!
Arquitetura
●   Model
●   View
●   Template
Model

from django.db import models
from 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
View


from django.shortcuts import render_to_response
from models import Link

def index(request):
  links = Link.objects.all()
  return render_to_response('index.html',
                             {'links':links})
Template
{% extends quot;base.htmlquot; %}

{% block content %}

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

{% endblock %}
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()
>>>
Geração de Formulários
●   Model x View x Template
●   Model x View (Forms + Metodos) x
    Templates
from django.forms import ModelForm
from models import Link

class LinkForm(ModelForm):

  class Meta:
     model = Link
Interface de Administração
●   Model x ModelAdmin
from django.contrib import admin
from models import Link

admin.site.register(Link)
Middleware




    views
Middleware



MIDDLEWARE_CLASSES = (
  'django.middleware.common.CommonMiddleware',
  'django.contrib.sessions.middleware.SessionMiddleware',
  'django.contrib.auth.middleware.AuthenticationMiddleware',
)
Algumas middlewares
●   Session
●   Authentication
●   Log
●   Gzip
Mitos e verdades
●   Django e monolítico
●   Django não escala
●   O deploy no Django é difícil e
    complicado
Django e ZODB
●   desafio ou loucura? =)
import ZODB.config

class ZODBConnection(object):

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

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

ZODBInstance = ZODBConnection()
from djangozodb import ZODBInstance

class ZODBSession(object):
   def process_request(self, request):
     request.zodb = ZODBInstance
Outros exemplos
●   Django + SQLAlchemy (tranquil)
●   Django + Storm
●   Django + CouchDb
●   Django + SQLObject
●   Django + Seu ORM Favorito
●   Django + BigTable on Google App
    Engine
Mais um exemplo
●   Django + REST
Cache
●   Cache em disco
●   Cache em memória
●   Cache em banco
Cache
●   Cache em disco
●   Cache em memória
●   Cache em banco ???? =
Deploy
●   Apache = mod_python
●   Apache = mod_wsgi
●   Apache = fast_cgi
●   Lighttpd = fast_cgi
●   Nginx = fast_cgi
●   ...
Em todo lugar...
●   Cpython
●   Jython
●   IronPython
●   PyPy ?????
Em todo lugar...
●   Cpython
●   Jython
●   IronPython
●   PyPy =)
Extra
●   Authentication Backend
●   Signals
●   Django + {{ sua template system }}
Duvidas?
●   Andrews Medina
●   andrewsmedina@gmail.com
●   http://www.andrewsmedina.com

Weitere ähnliche Inhalte

Was ist angesagt?

MyBB account hijacking
MyBB account hijackingMyBB account hijacking
MyBB account hijacking
Chris Illusion
 
code hay cho blogspot
code hay cho blogspotcode hay cho blogspot
code hay cho blogspot
Huy Nguyen
 
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
Jeongkyu Shin
 
Ejemplo para modificar el enlace de prezi para presentarlo en wordpress
Ejemplo para modificar el enlace de prezi para presentarlo en wordpressEjemplo para modificar el enlace de prezi para presentarlo en wordpress
Ejemplo para modificar el enlace de prezi para presentarlo en wordpress
gmrs81
 

Was ist angesagt? (20)

MyBB account hijacking
MyBB account hijackingMyBB account hijacking
MyBB account hijacking
 
Tt subtemplates-caching
Tt subtemplates-cachingTt subtemplates-caching
Tt subtemplates-caching
 
code hay cho blogspot
code hay cho blogspotcode hay cho blogspot
code hay cho blogspot
 
Ruby and JS quirks
Ruby and JS quirksRuby and JS quirks
Ruby and JS quirks
 
Malcon2017
Malcon2017Malcon2017
Malcon2017
 
Hacking with ruby2ruby
Hacking with ruby2rubyHacking with ruby2ruby
Hacking with ruby2ruby
 
Java & Script ─ 清羽
Java & Script ─ 清羽Java & Script ─ 清羽
Java & Script ─ 清羽
 
Mojolicious
MojoliciousMojolicious
Mojolicious
 
Node workShop Basic
Node workShop BasicNode workShop Basic
Node workShop Basic
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
 
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015
 
Codigo
CodigoCodigo
Codigo
 
Introducere in web
Introducere in webIntroducere in web
Introducere in web
 
"今" 使えるJavaScriptのトレンド
"今" 使えるJavaScriptのトレンド"今" 使えるJavaScriptのトレンド
"今" 使えるJavaScriptのトレンド
 
Flask intro - ROSEdu web workshops
Flask intro - ROSEdu web workshopsFlask intro - ROSEdu web workshops
Flask intro - ROSEdu web workshops
 
Ejemplo para modificar el enlace de prezi para presentarlo en wordpress
Ejemplo para modificar el enlace de prezi para presentarlo en wordpressEjemplo para modificar el enlace de prezi para presentarlo en wordpress
Ejemplo para modificar el enlace de prezi para presentarlo en wordpress
 
Ruby Robots
Ruby RobotsRuby Robots
Ruby Robots
 
What the web platform (and your app!) can learn from Node.js
What the web platform (and your app!) can learn from Node.jsWhat the web platform (and your app!) can learn from Node.js
What the web platform (and your app!) can learn from Node.js
 
ActionHeroJS Talk
ActionHeroJS TalkActionHeroJS Talk
ActionHeroJS Talk
 
HTML_HHC
HTML_HHCHTML_HHC
HTML_HHC
 

Ähnlich wie Django Show

High Performance Django 1
High Performance Django 1High Performance Django 1
High Performance Django 1
DjangoCon2008
 
High Performance Django
High Performance DjangoHigh Performance Django
High Performance Django
DjangoCon2008
 
Private slideshow
Private slideshowPrivate slideshow
Private slideshow
sblackman
 
A gentle intro to the Django Framework
A gentle intro to the Django FrameworkA gentle intro to the Django Framework
A gentle intro to the Django Framework
Ricardo Soares
 

Ähnlich wie Django Show (20)

Django - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazosDjango - Framework web para perfeccionistas com prazos
Django - Framework web para perfeccionistas com prazos
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
High Performance Django 1
High Performance Django 1High Performance Django 1
High Performance Django 1
 
High Performance Django
High Performance DjangoHigh Performance Django
High Performance Django
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
2014_07_28_Django環境安裝以及 Django Book Chapter 4: Templates
2014_07_28_Django環境安裝以及 Django Book Chapter 4: Templates2014_07_28_Django環境安裝以及 Django Book Chapter 4: Templates
2014_07_28_Django環境安裝以及 Django Book Chapter 4: Templates
 
Mini Curso Django Ii Congresso Academico Ces
Mini Curso Django Ii Congresso Academico CesMini Curso Django Ii Congresso Academico Ces
Mini Curso Django Ii Congresso Academico Ces
 
Django
DjangoDjango
Django
 
Logstash for SEO: come monitorare i Log del Web Server in realtime
Logstash for SEO: come monitorare i Log del Web Server in realtimeLogstash for SEO: come monitorare i Log del Web Server in realtime
Logstash for SEO: come monitorare i Log del Web Server in realtime
 
Private slideshow
Private slideshowPrivate slideshow
Private slideshow
 
Speed is a feature PyConAr 2014
Speed is a feature PyConAr 2014Speed is a feature PyConAr 2014
Speed is a feature PyConAr 2014
 
Speed is a Feature - PyConAr 2014
Speed is a Feature - PyConAr 2014Speed is a Feature - PyConAr 2014
Speed is a Feature - PyConAr 2014
 
Django at the Disco
Django at the DiscoDjango at the Disco
Django at the Disco
 
Caching Up and Down the Stack
Caching Up and Down the StackCaching Up and Down the Stack
Caching Up and Down the Stack
 
國民雲端架構 Django + GAE
國民雲端架構 Django + GAE國民雲端架構 Django + GAE
國民雲端架構 Django + GAE
 
Openstack 簡介
Openstack 簡介Openstack 簡介
Openstack 簡介
 
Vue.js + Django - configuración para desarrollo con webpack y HMR
Vue.js + Django - configuración para desarrollo con webpack y HMRVue.js + Django - configuración para desarrollo con webpack y HMR
Vue.js + Django - configuración para desarrollo con webpack y HMR
 
A gentle intro to the Django Framework
A gentle intro to the Django FrameworkA gentle intro to the Django Framework
A gentle intro to the Django Framework
 

Mehr von Andrews Medina

técnica de desenvolvimento de jogos para web
técnica de desenvolvimento de jogos para webtécnica de desenvolvimento de jogos para web
técnica de desenvolvimento de jogos para web
Andrews Medina
 
escalando aplicações django
escalando aplicações djangoescalando aplicações django
escalando aplicações django
Andrews Medina
 
Desenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonDesenvolvimento de Jogos em Python
Desenvolvimento de Jogos em Python
Andrews Medina
 

Mehr von Andrews Medina (12)

Python 3
Python 3Python 3
Python 3
 
Escalando aplicações web
Escalando aplicações webEscalando aplicações web
Escalando aplicações web
 
Design de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentávelDesign de código: princípios e práticas para ter um código sustentável
Design de código: princípios e práticas para ter um código sustentável
 
Python 3 - tutorial
Python 3 - tutorialPython 3 - tutorial
Python 3 - tutorial
 
testando interfaces web
testando interfaces webtestando interfaces web
testando interfaces web
 
desenvolvendo jogos para android
desenvolvendo jogos para androiddesenvolvendo jogos para android
desenvolvendo jogos para android
 
técnica de desenvolvimento de jogos para web
técnica de desenvolvimento de jogos para webtécnica de desenvolvimento de jogos para web
técnica de desenvolvimento de jogos para web
 
realtime - passado, presente e futuro
realtime - passado, presente e futurorealtime - passado, presente e futuro
realtime - passado, presente e futuro
 
Haskell para pythonistas
Haskell para pythonistasHaskell para pythonistas
Haskell para pythonistas
 
animações e jogos além do canvas
animações e jogos além do canvasanimações e jogos além do canvas
animações e jogos além do canvas
 
escalando aplicações django
escalando aplicações djangoescalando aplicações django
escalando aplicações django
 
Desenvolvimento de Jogos em Python
Desenvolvimento de Jogos em PythonDesenvolvimento de Jogos em Python
Desenvolvimento de Jogos em Python
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Kürzlich hochgeladen (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Django Show

  • 2. 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
  • 3. 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
  • 4. Welcome to the Django!
  • 5. Arquitetura ● Model ● View ● Template
  • 6. Model from django.db import models from 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
  • 7. View from django.shortcuts import render_to_response from models import Link def index(request): links = Link.objects.all() return render_to_response('index.html', {'links':links})
  • 8. Template {% extends quot;base.htmlquot; %} {% block content %} {% for link in links %} <p> <a href=quot;{{ link.url }}quot;> {{ link.title }} </a> - {{ link.date|date:quot;d/m/Yquot; }} </p> {% endfor %} {% endblock %}
  • 9. 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() >>>
  • 10.
  • 11. Geração de Formulários ● Model x View x Template ● Model x View (Forms + Metodos) x Templates
  • 12. from django.forms import ModelForm from models import Link class LinkForm(ModelForm): class Meta: model = Link
  • 13.
  • 14. Interface de Administração ● Model x ModelAdmin
  • 15. from django.contrib import admin from models import Link admin.site.register(Link)
  • 16.
  • 17. Middleware views
  • 18. Middleware MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', )
  • 19. Algumas middlewares ● Session ● Authentication ● Log ● Gzip
  • 20. Mitos e verdades ● Django e monolítico ● Django não escala ● O deploy no Django é difícil e complicado
  • 21. Django e ZODB ● desafio ou loucura? =)
  • 22. import ZODB.config class ZODBConnection(object): def __init__(self): db = ZODB.config.databaseFromURL(zodb_url) connection = db.open() self.root = connection.root() ZODBInstance = ZODBConnection()
  • 23. from djangozodb import ZODBInstance class ZODBSession(object): def process_request(self, request): request.zodb = ZODBInstance
  • 24. Outros exemplos ● Django + SQLAlchemy (tranquil) ● Django + Storm ● Django + CouchDb ● Django + SQLObject ● Django + Seu ORM Favorito ● Django + BigTable on Google App Engine
  • 25. Mais um exemplo ● Django + REST
  • 26. Cache ● Cache em disco ● Cache em memória ● Cache em banco
  • 27. Cache ● Cache em disco ● Cache em memória ● Cache em banco ???? =
  • 28. Deploy ● Apache = mod_python ● Apache = mod_wsgi ● Apache = fast_cgi ● Lighttpd = fast_cgi ● Nginx = fast_cgi ● ...
  • 29. Em todo lugar... ● Cpython ● Jython ● IronPython ● PyPy ?????
  • 30. Em todo lugar... ● Cpython ● Jython ● IronPython ● PyPy =)
  • 31. Extra ● Authentication Backend ● Signals ● Django + {{ sua template system }}
  • 32. Duvidas? ● Andrews Medina ● andrewsmedina@gmail.com ● http://www.andrewsmedina.com