O documento apresenta o framework Django para desenvolvimento web com Python. Ele descreve os principais componentes do Django, como models, views, templates e contrib apps, mostrando como eles trabalham juntos para construir aplicações web rápidas e escaláveis. O documento também destaca os princípios do Django, como DRY, KISS e MVT.
Minicurso de Django - Desenvolvimento ágil web com Django e PythonGuilherme Garcia
Minicurso de Django 1.10 com a criação de um projeto completo em Django e conteúdos sobre:
Introdução a Python, Autenticação de usuários Django, Relacionamentos de classes do Django. Templates, etc.
Minicurso de Django - Desenvolvimento ágil web com Django e PythonGuilherme Garcia
Minicurso de Django 1.10 com a criação de um projeto completo em Django e conteúdos sobre:
Introdução a Python, Autenticação de usuários Django, Relacionamentos de classes do Django. Templates, etc.
Django é um framework para desenvolvimento rápido para web, escrito em Python.
Utiliza o padrão MTV (model - template - view).
Principais caracteristicas:
Mapeamento Objeto-Relacional (ORM)
Define a modelagem de dados através de classes em Python. Com isso é possível gerar suas tabelas no banco de dados e manipulá-las sem necessidade de utilizarSQL (o que também é possivel).
Interface Administrativa
No Django é possivel gerar automaticamente uma interface para administração para os modelos criados através do ORM.
Formulários
É possível gerar formulários automaticamente através dos modelos de dados.
URLs Elegantes
No Django não há limitações para criação de URLs elegantes e de maneira simples.
- Nada elegante, difícil para o usário e ruim para buscadores: www.meusite.com.br/index.jsp?id=12&nome=ciclano
- Elegante, fácil leitura e memorização e ótimo para buscadores:
www.meusite.com.br/12/ciclano
Sistema de Templates
O Django tem uma linguagem de templates poderosa, extensível e amigável. Com ela você pode separar design, conteúdo e código em Python.
Internacionalização
Django tem total suporte para aplicações multi-idioma, deixando você especificar strings de tradução e fornecendo ganchos para funcionalidades específicas do idioma.
Sistema de Cache
O Django possui um sistema de cache que se integra ao memcached ou em outros frameworks de cache.
Sobre Python
O que é Python?
Python é uma linguagem de altíssimo nível (VHLL - Very High Level Language) com código fonte aberto.
Python é Interpretado ou compilado?
Python é executado de forma interpretada via bytecode, ou seja, escrevendo apenas uma vez o código Python podemos executá-lo em qualquer sistema operaciona
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...Rafael Jaques
Todos os dias, diversas de pessoas ao redor do mundo começam a programar em PHP. É uma linguagem fácil de ser aprendida e, por isso, pode fazer com que desenvolvedores despreparados criem sistemas vulneráveis. O objetivo dessa palestra é apresentar as principais vulnerabilidades de aplicações PHP e a maneira de contorná-las. Serão mostradas também técnicas de programação defensiva, resposta a incidentes, prevenção de perdas e outros tópicos relevantes à segurança da informação. Princípios de segurança, técnicas de invasão e defesa, identificação e prevenção de ataques, boas práticas e proteção do usuário fazem parte dos assuntos abordados nessa palestra.
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
Slides que utilizei para ministrar uma palestra sobre Desenvolvimento WEB com Ruby on Rails no IV Congresso de Iniciação Científica da Faculdade Redentor de Itaperuna / RJ.
Versão PDF aqui: https://www.dropbox.com/s/2fkwksu00chm7nu/presentation.pdf
Lightning talk apresentada no MeetUp PHPRS subseção Canela/Gramado no dia 26/11/2016 - hotel Klein Ville de Canela (RS):
http://www.meetup.com/pt-BR/PHP-RS/events/234978772/
Django é um framework para desenvolvimento rápido para web, escrito em Python.
Utiliza o padrão MTV (model - template - view).
Principais caracteristicas:
Mapeamento Objeto-Relacional (ORM)
Define a modelagem de dados através de classes em Python. Com isso é possível gerar suas tabelas no banco de dados e manipulá-las sem necessidade de utilizarSQL (o que também é possivel).
Interface Administrativa
No Django é possivel gerar automaticamente uma interface para administração para os modelos criados através do ORM.
Formulários
É possível gerar formulários automaticamente através dos modelos de dados.
URLs Elegantes
No Django não há limitações para criação de URLs elegantes e de maneira simples.
- Nada elegante, difícil para o usário e ruim para buscadores: www.meusite.com.br/index.jsp?id=12&nome=ciclano
- Elegante, fácil leitura e memorização e ótimo para buscadores:
www.meusite.com.br/12/ciclano
Sistema de Templates
O Django tem uma linguagem de templates poderosa, extensível e amigável. Com ela você pode separar design, conteúdo e código em Python.
Internacionalização
Django tem total suporte para aplicações multi-idioma, deixando você especificar strings de tradução e fornecendo ganchos para funcionalidades específicas do idioma.
Sistema de Cache
O Django possui um sistema de cache que se integra ao memcached ou em outros frameworks de cache.
Sobre Python
O que é Python?
Python é uma linguagem de altíssimo nível (VHLL - Very High Level Language) com código fonte aberto.
Python é Interpretado ou compilado?
Python é executado de forma interpretada via bytecode, ou seja, escrevendo apenas uma vez o código Python podemos executá-lo em qualquer sistema operaciona
[FISL 16] PHP no Campo de Batalha: Segurança Avançada e Programação Defensiva...Rafael Jaques
Todos os dias, diversas de pessoas ao redor do mundo começam a programar em PHP. É uma linguagem fácil de ser aprendida e, por isso, pode fazer com que desenvolvedores despreparados criem sistemas vulneráveis. O objetivo dessa palestra é apresentar as principais vulnerabilidades de aplicações PHP e a maneira de contorná-las. Serão mostradas também técnicas de programação defensiva, resposta a incidentes, prevenção de perdas e outros tópicos relevantes à segurança da informação. Princípios de segurança, técnicas de invasão e defesa, identificação e prevenção de ataques, boas práticas e proteção do usuário fazem parte dos assuntos abordados nessa palestra.
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
Slides que utilizei para ministrar uma palestra sobre Desenvolvimento WEB com Ruby on Rails no IV Congresso de Iniciação Científica da Faculdade Redentor de Itaperuna / RJ.
Versão PDF aqui: https://www.dropbox.com/s/2fkwksu00chm7nu/presentation.pdf
Lightning talk apresentada no MeetUp PHPRS subseção Canela/Gramado no dia 26/11/2016 - hotel Klein Ville de Canela (RS):
http://www.meetup.com/pt-BR/PHP-RS/events/234978772/
Apresentação intitulada "Modern PHP" que será apresentada na semana acadêmica da FACCAT (Taquara) entre os dias 25 a 29 de abril: http://techparty.faccat.br
Última aula do curso de Python, aqui mostramos de forma superficial como fazer a integração do Django com Adobe Flex, como utilizar o módulo do PagSeguro, PyGame e como integrar sua aplicação com o Apache
Slides do mini-curso ministrado durante a SECCOMP 2010 (XVIII Semana da Ciência da Computação) no campus de Rio Claro da UNESP, na qual alunos de Ciência da Computação foram apresentados ao universo da criação de mashups, viram alguns cases e tecnologias relacionadas e fizeram exercícios usando Yahoo! Pipes (para integrar feeds RSS) e JavaScript (integrando a Apontador API com o Google Maps).
Doctrine é uma ferramenta de ORM (mapeamento objeto-relacional) para
PHP que sobrepõe a poderosa DBAL (camada de abstração de Banco de
Dados) PDO do PHP.
Um de seus principais recursos é a possibilidade adicional de escrever
consultas à base de dados através de um dialeto-SQL OO (orientado à
objeto) chamado DQL inspirado no HQL do Hibernate. Isto provê aos
desenvolvedores uma alternativa poderosa ao SQL que mantém o máximo de
flexibilidade sem qualquer necessidade de duplicação de código.
O tema da palestra é apresentar a ferramenta como uma solução ágil
para problemas recorrentes.
Desmitificando as aplicações RESTFul usando Django Rest FrameworkBruno Oliveira
Esta palestra aborda como funciona o estilo arquitetural REST, entendendo os seus princípios e terminologias. Além disso, é feita uma comparação quanto a suas vantagens e desvantagens em relação a outras tecnologias, e para quais casos é indicado. A apresentação também inclui uma demonstração prática usando Django REST Framework.
O futuro do elephante: as promessas do php para 2019Cassio Santos
O PHP continua evoluindo. A versão 7.4 (que será lançada em breve) apresenta novas funcionalidades, como as propriedades tipadas, e a versão 8.0 já está em desenvolvimento.
Vamos mergulhar nas RFCs (Requests for Comments) e entender quais serão as próximas funcionalidades disponibilizadas para o PHP, incluindo o que já foi aprovado e o que está sob discussão.
3. Django!
Desenvolvido para “Lawrence Journal-World”
http://www.lawrence.com/
- Princípios -
ORM
DRY
KISS
MTV (MVC)
Rápido
Escalável
Poucas dependências
http://www.python.org.br http://www.pugce.org
4. Melhores Práticas!
Baixo acoplamento Lógica de domínio
Urls/Visão/Modelo auto-contida
Explícito é melhor que Modelo
implícito Poliglota
Menos mágica! Internacionalização
Enxuto Ajax e companhia
Só o essencial! XML, (X)HTML, JSON
Produtivo Extensível
- Código + Produto TUDO!
http://www.python.org.br http://www.pugce.org
5. models.py
ORM padrão do Django
from django.models import *
Solução InHouse # define a classe/tabela no banco
class Page(models.Model):
Lazy Queries name=CharField(max_length=100)
slug=SlugField(primary_key=True)
ActiveRecord text=models.TextField()
1to1, 1toM, MtoN # cria uma página no banco
Page.objects.create(name='Pugce', slug='pugce',
Independe do Banco text='Amo tudo isso!')
pg = Page.objects.get(pk='pugce') # busca por PK
Sinais query = Page.objects.all() # todas as paginas!
# paginas que o nome comeca com 'P'
Page.objects.filter(name__startswith='P')
http://www.python.org.br http://www.pugce.org
6. urls.py
Mapeamento de Requisições
from django.conf.urls.defaults import *
from django.contrib import admin
from cms import views
# acha modelos p/ o django-admin
DRY admin.autodiscover()
Baixo acoplamento # (<regex>, view.metodo ou include(modulo_url))
urlpatterns = patterns('',
Exp. Regulares (r'^admin/', include(admin.site.urls)),
(r'^accounts/(?P<username>[w_]+)/',
RÁPIDO!! include('pugce.accounts.urls')),
url(r'^(?P<slug>[0-9A-Za-z-_.//]+)/$',
views.page, name='cms-page')
)
http://www.python.org.br http://www.pugce.org
7. forms.py
Geração de Formulários
- Gerados - - Validação -
A partir do modelo Automática
Manualmente Personalizada
from django import forms
from . import models
- Características - # form a partir de um modelo
Sem HTML class PageForm(forms.ModelForm):
class Meta: model=models.Page
Mapeamento auto. # testando o formulário
page=models.Page.objects.get(pk='pugce')
Tratamento de erros frm=PageForm({“name”:”huguinho”}, instance=page)
if frm.is_valid(): frm.save()
else: print frm.errors
http://www.python.org.br http://www.pugce.org
8. views.py
Lógica da Aplicação
from django.shortcuts import
- Características - render_to_response as rp
from . import models
Simples
Valida Acesso # primeiro argumento deve ser a requisicao
def page(request, slug):
Responde Requisições # slug: identificador de uma Page
pg = models.Page.objects.get(pk=slug)
Acessa o Modelo rp_dict = pg.__dict__
Independe do Template
if request.is_ajax(): # requisicao ajax?
Ajax Transparente return rp('pg.json', rp_dict,
mimetype='application/json')
else: return rp('pg.html', rp_dict)
http://www.python.org.br http://www.pugce.org
9. Templates!
Mostrando Resultado!
Tags Flexível
{% tagname %} Funciona com qualquer
Variáveis arquivo texto, seja XML,
HTML, XHTML, TXT...
{{ var }}
Filtros
Melhores Práticas
var|filtro
Separa Lógica e Apresentação
http://www.python.org.br http://www.pugce.org
14. contrib.admin
Interface Administrativa
Acesso ao banco
Crud
Automatizado
Logs
Permissões
Personalizável
fonte:djangobook.zinpep
http://www.python.org.br http://www.pugce.org
15. Agradecimento
Agradeço a presença de todos e aos meus
colegas coordenadores por serem grandes
pessoas e profissionais!
Mais informações em:
http://djangoproject.com/
http://www.djangobrasil.org/
http://www.python.org.br http://www.pugce.org