Django Brasil


Comunidade brasileira de Django


Feeds RSS

Envolva-se

O Django Brasil é um grupo de usuários e pesquisadores brasileiros de Django, uma framework para desenvolvimento ágil para a Web, baseada na linguagem Python e em padrões da programação orientada a objetos.

Listas de discussão

  • Usuários do Django no Brasil: Lista de discussão de ajuda ao Django em português.

    Inscreva-se na lista Django-Brasil
  • django-l10n-portuguese: Equipe de localização e tradução do Django para o português.

    Iscreva-se na lista de localização

Diga ao mundo

Casos de Sucesso

Diversas empresas adotam o Django a cada dia mais. Veja algumas histórias de grande satisfação que a opção pelo Django gerou.

Obtenha ajuda

Autores

Você escreve sobre Django em português? Solicite aqui a inclusão de seus feeds.

Comunidade

Esta página é atualizada a cada hora e agrega entradas dos blogs de brasileiros que escrevem sobre o Django.

Fazendo deployment de sua aplicação em Django, Flask e afins com uWSGI e nginx

Publicado em 28/10/2011 às 22h15
Jayson Santos feed

   Por que usar o uWSGI? Porque atualmente é a opção mais performática e linda de fazer deloyment de projetos em Python, tanto faz se sua aplicação é escrita usando Django, Flask ou afins.
   Levando em conta que você já tenha o nginx instalado, falarei apenas sobre a parte que envolve o uWSGI.
   Primeiros passos:
   Primeiro instale os headers da libxml2 e do python, no ubuntu por exemplo, digite apenas: sudo apt-get install libxml2-dev python-dev.
   Com o PIP, instale o uWSGI: sudo pip install uWSGI. O PIP começará a compilar o uWSGI, caso você não tenha GCC, make, autoconf e etc, instale com sudo apt-get install build-essential.
    Eu particularmente, escrevo as configurações para o uWSGI em arquivos INI, segue uma configuração que geralmente uso.


[uwsgi]
touch-reload=/diretorio/projeto/tmp/restart.txt # Usado para que o uWSGI recarrege o seu fonte com um simples touch restart.txt
listen=1024 # Número de itens em fila de espera
disable-logging=true # Deixa de logar requisições, fará log apenas de erros.
socket=/diretorio/que/voce/quiser.sock # Caminho do socket que o uWSGI ouvirá/escreverá.
master=true # Ativa o processo master para controlar os rebeldes.
harakiri=60 # Modo suicida que matará a app após x segundos em execução.
processes=4 # Número de workers.
buffer-size=25000 # Buffer mais alto porque muitas vezes alguns browsers mandam headers gigantes.
daemonize=/diretorio/que/voce/quiser.log # Joga o processo para background e escreve o log no arquivo determinado.
post-buffering=8192 # Limite máximo de tamanho do body do http, passando o limite, ele salva em disco.
pidfile=/diretorio/que/voce/quiser.pid # Arquivo que o número do processo master será gravado.
pythonpath=/diretorio/do/seu/projeto
module=wsgi # Módulo que o uWSGI carregará a sua app.

    Com isso, sua app já deve funcionar com uwsgi --ini /arquivo/ini.ini.

    Para fazer o deployment com o nginx, você precisa de duas linhas apenas.
    No seu location / adicione:
    include uwsgi_params;
    uwsgi_pass unix:/diretorio/do/socket.sock;

    Pronto, depolyment feito, não se esqueça de colocar o nginx para servir seus estáticos senão será um tiro no pé usar o uWSGI para isso.

    - Wait!!! Como faz para fazer o uWSGI iniciar com a máquina?
    - One word: upstart.
    - Tá! Como?
    - Mais fácil do que tirar doce de criança.

    Crie um arquivo .conf em /etc/init com o seguinte conteúdo:


start on (net-device-up
and local-filesystems
and runlevel [2345])
stop on runlevel [016]
respawn
expect daemon
exec uwsgi --ini /seu/arquivo/de/config/uwsgi.ini


    Para executar a app, digite start nome_do_arquivo sem o .conf é claro. Outros comandos são: stop, restart e status.

    Pronto, espero que tenham gostado/achado útil, qualquer dúvida, comentem ou twittem para @jaysonsantos.


Leia essa entrada em seu contexto original »

Usando o uWSGI para enfileirar seus e-mails com Django

Publicado em 20/10/2011 às 0h55
Jayson Santos feed

 

   Acredito que muitas pessoas já tiveram a necessidade de enfileirar o envio de e-mails para que o usuário não espere a boa vontade do servidor SMTP e afins. Para isso, desenvolvi um backend para envio de e-mails em Django que usa o Spooler do uWSGI para fazer a bendita fila.

   Para quem não conhece o Spooler do uWSGI, a documentação completa pode ser consultada em http://projects.unbit.it/uwsgi/wiki/Spooler, e os lindos decorators, podem ser consultados em http://projects.unbit.it/uwsgi/wiki/Decorators.

   Vamos ao que interessa.

   Para instalar, pip install django-uwsgi-mail ou baixe o repositório em https://github.com/jaysonsantos/django-uwsgi-mail.

   Para usá-lo, adicione o uwsgi_mail ao seu python path, e configure no seu settings o backend de e-mail com EMAIL_BACKEND = 'uwsgi_mail.uwsgi.EmailBackend', não esquecendo de ativar o spooler no seu uWSGI e fazer com que ele carrege o módulo uwsgi_mail.task.

   - Que mais, tio?

   - Nada, envie seus e-mails.

   - Como assim?

   - Com o backend adicionado, você pode usar tanto o send_mail ou EmailMessage normalmente que o backend irá serializar a mensagem e enviar para o uWSGI que enviará para o spool e o spool voltará ao uwsgi_mail.task.send_mail que usará por padrão o backend de SMTP do Django, caso você queria alterá-lo, no seu settings, configure UWSGI_EMAIL_BACKEND com o backend que você quiser.

 

   É isso aí, façam fork do projeto, modifiquem, comentem.

   Mais informaçõs em https://github.com/jaysonsantos/django-uwsgi-mail.

 


Leia essa entrada em seu contexto original »


Hospedado por APyB. Django Brasil é a comunidade brasileira de usuários do framework web Django. Django é uma marca registrada de Lawrence Journal-World.