Curso django para iniciantes

O curso Django para iniciantes foi o primeiro produto da MixinCode, empresa em que eu sou sócio fundador.

O foco é o usuário iniciante, que teve pouco ou nenhum contato com o Django, mas que já tem conhecimento da linguagem python, abaixo eu reproduzo o depoimento do aluno Marcelo Domingues:

Treinamento altamente recomendável! Achei a didática muito boa e as informações muito bem detalhadas. O curso vai direto no ponto, proporcionando uma experiência de aprendizado de Django muito fácil e intuitiva. Outra coisa muito interessante é a parte sobre deploy… fiz alguns cursos de Django com outros instrutores, mas nenhum foi tão completo e detalhado como este na questão de deploy; ensina os principios de deploy com Python, portanto serve também como base inicial para fazer deploy de outros frameworks Python.

Outra coisa muito importante é a atenção que o instrutor dedica aos alunos. Feedback rápido e preciso.

Valeu Allisson!

A primeira aula está disponível na página do curso.

Deploy completo de uma aplicação Django – Mutirão Python

A convite do Marcel da PyCursos, no dia 13/05/2013 eu estive representando a MixinCode na apresentação da palestra Deploy completo de uma aplicação Django.

Desde já, agradeço pelo convite e também ao pessoal que ficou firme e forte até o final da palestra que durou um pouco mais de duas horas.

Abaixo os vídeos e slides.

Vídeo oficial do Hangout:

Vídeo gravado pelo screenflow (alta qualidade):

Slides no slideshare:

Slides no speakerdeck

Django class based views com lazy loading

Vejamos um pequeno exemplo de uso do class based views no Django:

# views.py
from django.views.generic import ListView
from books.models import Publisher

class PublisherList(ListView):
    model = Publisher
# urls.py
from django.conf.urls import patterns, url
from books.views import PublisherList

urlpatterns = patterns('',
    url(r'^publishers/$', PublisherList.as_view()),
)

O problema desse código é que você precisa importar o PublisherList no urls.py, para pequenos projetos isso não é problema, mas se o projeto for muito grande o tempo de carregamento do urls.py será comprometido.

Usando o paradigma tradicional de views (uma função que recebe request e retorna um HttpResponse) podemos carregar essa view apenas quando necessário, isso é chamado de lazy loading, muito melhor para grandes projetos, pois a importação de todas as views no urls.py é desnecessária.

Podemos resolver isso de uma maneira muito fácil:

# views.py
from django.views.generic import ListView
from books.models import Publisher

class PublisherList(ListView):
    model = Publisher

publisher_list = PublisherList.as_view()
# urls.py
from django.conf.urls import patterns, url

urlpatterns = patterns('',
    url(r'^publishers/$', 'myapp.views.publisher_list'),
)