Junho 2016 - Django - A sua cápsula de soluções web em python

38 visualizações

Publicada em

Palestra apresentada no encontro de junho pela Paula Grangeiro - http://pt.slideshare.net/PaulaGrangeiro

Publicada em: Software
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
38
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
3
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Junho 2016 - Django - A sua cápsula de soluções web em python

  1. 1. Django AsuacápsuladesoluçõeswebemPython 4º Encontro Carioca de Testes - 14 de junho de 2016
  2. 2. Sobremim Paula Grangeiro 28 anos Bacharel em Sistemas de Informação Duque de Caxias Gateira Python & Arquitetura de Software yoroshiku!
  3. 3. Ondemeencontrar...
  4. 4. PorquePython? Não seria maravilhoso se eu pudesse programar enquanto desenvolvo uma aplicação?
  5. 5. ● É Software Livre ● É multiplataforma ● É uma linguagem de alto nível ● É fortemente tipada ● É de fácil aprendizado ● Possui uma extensa documentação ● Tem a comunidade mais lynda do mundo <3 Porque... print(‘É só amor <3’)
  6. 6. 4ªposição Entre as linguagens mais utilizadas no mundo. fonte: TIOBE, Junho/2016 (http://www.tiobe.com/tiobe_index)
  7. 7. Django Não seria maravilhoso se eu pudesse me preocupar somente em desenvolver o código do meu negócio sem me perder numa selva de comandos?
  8. 8. Vantagens StartandGo! ● É Software Livre ● É multiplataforma ● É de nem tão fácil aprendizado ● Possui uma extensa documentação ● Tem a comunidade mais lynda do mundo <3 ● Baixo acoplamento e alta coesão ● Retrocompatibilidade ● É de fácil instalação e configuração
  9. 9. print(‘codetime’)
  10. 10. BatteriesIncluded ● ORM ● Multi DB ● Migrations ● Authorization ● Authentication ● Admin ● Sites ● Forms ● CSRF ● Dev Server ● WSGI ● TestCases ● Caching ● Templates ● Estáticos ● Views ● URL Eporaívai...
  11. 11. MVT A arquitetura MVT do Django é similar ao conceito de MVC, onde os Models com a ajuda da ORM intermediam o acesso ao banco constituindo a camada de Model, os middlewares administram as requisições HTTP e enviam para um sistema de renderização de templates constituindo a camada de View e as Views com a ajuda do sistema que resolve as URLs constituem a camada equivalente a de Controller. Model View Template
  12. 12. Model Seria um sonho se existisse um framework onde não fosse necessário ter que lidar com todos essas tabelas e relacionamentos...
  13. 13. ORM patient = Patient.objects.get(id=1) patient.name = ‘Sara Shiva’ patient.save() ● API única de acesso independente do banco de dados do projeto ● Abordagem orientada à objetos ● Transações ACID
  14. 14. Migrations python manage.py makemigrations python manage.py migrate ● Mantém a consistência entre os modelos e tabelas do banco de dados
  15. 15. print(‘codetime’)
  16. 16. View A simplicidade do framework é inversamente relativa à quantidade de bruxaria necessária para realizar um POST
  17. 17. Views Responsável por receber uma requisição(request) Web e retornar uma resposta (response) from django.http import HttpResponse import datetime def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(html)
  18. 18. URLdispatcher Necessário para ligar a requisição ao responsável pela resposta. from django.conf.urls import url from . import views urlpatterns = [ url(r'^today/$', views.current_datetime), ]
  19. 19. print(‘codetime’)
  20. 20. ClassBasedViews Views especializadas em certos tipos de objects request e response from django.http import HttpResponse from django.views.generic import View import datetime class MyView(View): def get(self, request): now = datetime.datetime.now() html = "<html><body>It is now %s</body></html>" % now return HttpResponse(html)
  21. 21. print(‘codetime’)
  22. 22. Template Em apenas um dia e 72 linhas Deus programou o mundo. Nos outros 6 criou o layout.
  23. 23. Templates ● HTML friendly ● São extensíveis ● Tags ● Filters {% extends “admin/base.html” %} {% block content %} <ul> {% for athlete in athlete_list %} <li>{{ athlete.name }}</li> {% endfor %} </ul> {% endblock %}
  24. 24. print(‘codetime’)
  25. 25. Obrigada! - Email: contato@paulagrangeiro.com.br - Site: www.paulagrangeiro.com.br - GitHub: @pgrangeiro - Twitter: www.twitter.com/paulagrangeiro - Facebook: www.facebook.com/paula.grangeiro

×