Segue para o conteúdo

Artigos Recentes

12
ago

PythonBrasil [6] – Curitiba, 21 a 23 de outubro

por Osvaldo Santana Neto

Como não podia deixar de ser esse ano teremos mais uma edição do encontro brasileiro da comunidade Python: a PythonBrasil [6].

Logotipo da PythonBrasil [6]

Das seis edições do evento eu só não pude ir na que aconteceu no ano passado. Essa ausência me “dói” até hoje e eu ainda sou corroído por uma “invejinha” de quem foi.

A PythonBrasil tem muitas características que eu gosto de ver em eventos de tecnologia: formatos inovadores (palestras relâmpago, open spaces) além das tradicionais apresentações e cursos, a presença de uma turma realmente especial de desenvolvedores extremamente experientes, um evento com a “mente aberta” (já é praxe convidar palestrantes para falar de outras linguagens de programação), etc, etc.

Esse ano teremos algo ainda mais especial: o evento acontece aqui na nossa cidade: Curitiba.

Se você quer participar de um evento muito legal eu recomendo que você faça sua inscrição. Se você já usa Python e tem coisas legais para mostrar para nós submeta uma proposta de palestra ou curso.

Nós da Triveos estaremos por lá e (se nossas propostas forem aprovadas) apresentaremos algumas das coisas que estamos fazendo com Python e Django. Além disso vamos distribuir alguns brindes para os participantes do evento.

A Triveos é especializada no desenvolvimento de aplicações Web e utiliza Python e Django em grande parte de seus projetos. Tendo como base esse know-how no uso de Python e Django criamos o Curso de Desenvolvimento Web com Python e Django nas modalidades in-company e online.
4
ago

Usando Django com IIS e SQL Server

por Osvaldo Santana Neto

As distribuições Linux e o Mac OS X já possuem uma instalação bastante completa de Python e instalar o Django é rápido e fácil nesses ambientes.

Como o Django suporta “oficialmente” os servidores Web e de banco de dados mais comuns no mundo open-source (Apache, nginx, lighttpd, MySQL, PostgreSQL, etc) a documentação dele está repleta de exemplos sobre como fazer um deploy nesses ambientes.

Mas e se você trabalha num ambiente onde a plataforma da Microsoft é usada intensamente? E se você usa o IIS como servidor Web e o SQL Server como banco de dados relacional, seria possível usar o Django?

A resposta é sim, mas por não ser suportado “oficialmente” a configuração desses ambientes não é muito documentada nem é muito simples (ao menos pra nós que não trabalhamos intensamente com a plataforma da Microsoft).

Vamos descrever os passos necessários para colocar esse ambiente “no ar”.

Baixando e instalando o Python

O jeito mais fácil de instalar o Python na plataforma Windows é com o ActivePython distribuido pela ActiveState. Além da instalação padrão do Python essa distribuição inclui módulos e bibliotecas muito úteis no ambiente Windows.

Nota, a versão recomendada é a Active Python 2.5. Os screenshots são meramente ilustrativos

Site para Download do Active Python da ActiveState

Active Python da ActiveState

Acessando o site e clicando no link para download você será encaminhado para um formulário cujo preenchimento é opcional e o download será iniciado.

Tela com Formulário cujo preenchimento é opcional

Formulário cujo preenchimento é opcional

Assim que o download terminar é só executar o instalador e seguir as instruções.

Seguindo as instruções do instalador

Seguindo as instruções do instalador

Instalando o Django e suas dependências

Para facilitar o trabalho, a Triveos desenvolveu um instalador que já instala o Django e outros pacotes necessários (que funciona APENAS com o Active Python 2.5) Baixe-o aqui

Mas se desejar instar o Django manualmente continue lendo.

O procedimento para instalar o Django e parte de suas dependências segue no “Prompt de Comandos”. O ActivePython já colocou os diretórios do Python no PATH do sistema e instalou as ferramentas necessárias para baixar e instalar o Django e suas dependências (setuptools/easy_install/pip).

Agora é só a gente criar um ambiente isolado de trabalho (que chamaremos de ‘gerenciador’) com o virtualenv e instalar o Django com o pip.

Instalando o Django

Instalando o Django

C:\Users\usuario> virtualenv gerenciador
C:\Users\usuario> cd gerenciador
C:\Users\usuario\gerenciador> Scripts\activate.bat
(gerenciador) C:\Users\usuario\gerenciador> pip install django

Criando um projeto Django

Com o que a gente já fez é possível iniciar um projeto Django que, posteriormente, armazenara seus dados num servidor SQL Server e será acessível através de um servidor IIS. Esse projeto também se chamará ‘gerenciador’ e será criado dentro do nosso ambiente virtual que tem o mesmo nome: “C:\Users\usuario\gerenciador\gerenciador“.

Criando o projeto 'gerenciador'

Criando o projeto

(gerenciador) C:\Users\usuario\gerenciador> python Scripts\django-admin.py startproject gerenciador
(gerenciador) C:\Users\usuario\gerenciador> cd gerenciador
(gerenciador) C:\Users\usuario\gerenciador\gerenciador>

Configurando o acesso ao SQL Server

Para que seja possível acessar um banco de dados SQL Server a partir de uma aplicação feita em Django é necessário instalar o backend do mesmo já que ele não faz parte da instalação padrão do Django. O projeto que implementa esse backend fica no endereço: http://code.google.com/p/django-mssql/.

Para que o backend funcione é necessário colocar o diretório “[django-mssql]/source/sqlserver_ado/” em um caminho do PYTHONPATH. No nosso caso vamos colocá-lo dentro do diretório do nosso próprio projeto. Para facilitar o nosso trabalho é só baixar o arquivo com o backend e descompactá-lo dentro do diretório do nosso projeto Django.

Criando o banco de dados

Criando o banco de dados

Crie o banco de dados que será usado por nossa aplicação no SQL Server e certifique-se de usar a autenticação por senha e não a autenticação Windows (que não é suportada pelo backend).

Banco de dados "django" criado

Banco de dados

Agora é só configurar a conexão no arquivo settings.py do nosso projeto.

Configuração do projeto

Configuração do projeto

Assim que a gente rodar um python manage.py syncdb

Rodando o "syncdb"

Rodando o

… as tabelas serão criadas no banco de dados.

Tabelas prontas para serem usadas

Tabelas prontas para serem usadas

Configurando o IIS

Devo confessar que essa foi a parte mais complicada do trabalho!

Antes de instalar o seu projeto no IIS teste-o usando o manage.py.

Para facilitar o trabalho, a Triveos desenvolveu um instalador (que funciona APENAS com o Active Python 2.5) Baixe-o aqui

Este instalador instala o Django e todas os pacotes necessários (django-mssql e isapi-wsgi). Exige o Active Python 2.5

Após instalado, faça da seguinte forma:

1 – crie o diretório que vai receber o seu projeto no IIS (pode ser dentro do c:\inetpub)
2 – crie o arquivo handler de WSGI neste diretório, assim:

import os, sys 

#inclua aqui o caminho para o seu projeto
#é comum incluir o caminho para o diretório do projeto e seu pai
sys.path.append('C:\\django_projects')
sys.path.append('C:\\django_projects\\example_project') 

#configure aqui para apontar para o arquivo de settings de seu projeto
os.environ['DJANGO_SETTINGS_MODULE'] = 'example_project.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler() 

import isapi_wsgi
# The entry points for the ISAPI extension.
def __ExtensionFactory__():
    return isapi_wsgi.ISAPISimpleHandler(application)

3 – salve o arquivo com algum nome (por exemplo, wsgi.py)
4 – Busque dentro do diretório do Python o arquivo PyISAPI_loader.dll (normalmente em C:\Python25\Lib\site-packages\isapi). Copie-a para o diretório com o mesmo nome do arquivo .py (com extensão .dll) mas precedido de um caracter ‘_’ (underscore). Assim, se o arquivo foi salvo como wsgi.py, copie a dll e a renomeie para _wsgi.dll
5 – Para os diretórios de media e admin_media, você deverá incluir Virtual Directories do IIS apontando para eles

Virtual dirs para admin media

6 – Finalmente crie os mapeamentos da seguinte forma:

Nas configurações do site, em Handler Mappings adicione um Script Map da seguinte forma:
-Request Path: *
-Executable: aponte para a .dll dentro do diretório
-Nome: como desejado

Crie um mapeamento para StaticFileModule para os caminhos que apontam para os virtual dirs. Infelizmente é necessário criar um mapeamento para todos os subdiretórios. (ou seja, é necessário criar um mapeamento para admin_media/css/*, admin_media/js/* admin_media/img/*)

Module mappings não ordenados

Ordene os mapeamentos colocando os de media primeiro e o Script Map por último.

Se tudo der certo o seu site está funcionando no IIS agora!

A Triveos é especializada no desenvolvimento de aplicações Web e utiliza Python e Django em grande parte de seus projetos. Tendo como base esse know-how no uso de Python e Django criamos o Curso de Desenvolvimento Web com Python e Django nas modalidades in-company e online.
2
jul

Interface Admin do Django: um baita quebra-galho.

por Osvaldo Santana Neto

Já faz algum tempo que nós aqui na Triveos estamos usando Django e Python. Também tenho apresentado palestras e ministrado cursos de Django em vários lugares. Temos até mesmo um curso online de Python e Django à venda em um site desenvolvido em Django.

A Interface Admin do Django

A Interface Admin do Django

Todos os programadores Django adoram falar sobre um dos grandes diferenciais desse framework: A Interface Admin.

Realmente, só quem desenvolve aplicações Web a bastante tempo e perdeu tempo precioso fazendo “telinhas de cadastro” sabe como essa tarefa é chata e pouco desafiadora. E todos que desenvolvem com Django agradecem a existência dessa funcionalidade.

A interface Admin do Django é prática, fácil de ser usada, e bonitinha. Uma mão na roda. Um baita quebra-galho. Até mesmo… mágica! A diferença entre um projeto entregue e um projeto atrasado.

Mas isso termina por aqui.

A interface de Admin do Django tem uma função clara: administrar o sistema. Tanto que ela foi feita para ser acessada só por usuários do “staff“.

Ela foi feita para que os desenvolvedores do site não percam tempo fazendo cadastros “bobinhos” que precisam ser mantidos só pelos funcionários da empresa.

O Django nasceu no mercado editorial e o primeiro projeto desenvolvido nele foi um gerenciador de conteúdo (CMS). A interface de Admin do Django servia (serve?) para que os editores, jornalistas, autores, etc. inserissem conteúdo nos sites dos jornais do grupo The World Company.

A interface Admin não foi feita para você desenvolver toda a sua aplicação nela. Ela é muito poderosa e até faz algumas coisas além de permitir somente a inclusão, visualização, alteração, e exclusão de conteúdo. Ela permite ordenar registros, efetuar buscas, definir ações, etc. Mas paramos por aí.

Funcionalidades mais elaboradas ou que precisam ser acessadas por pessoas que não fazem parte do “staff” continuam tendo o seu desenvolvimento necessário.

No site Ludeos, que foi desenvolvido em Django, a interface Admin ainda é usada para verificar os pagamentos dos cursos, e na manutenção das lojas e produtos. O fato do Django oferecer essa funcionalidade pra gente fez a diferença entre um projeto “atrasado” e um projeto “no ar”.

Mas o uso da interface Admin é um fator limitante para o nosso uso do sistema. Fica claro que, para que o projeto evolua, será necessário tirar algumas dessas funcionalidades da interface de Admin.

Em resumo: usem a interface Admin, mas saibam que em determinado momento ela pode limitar as suas ações e, nestes casos, Django oferece outras alternativas pra te ajudar a deixar a interface Admin: Generic Views. Falaremos sobre elas em outra oportunidade.

A Triveos é especializada no desenvolvimento de aplicações Web e utiliza Python e Django em grande parte de seus projetos. Tendo como base esse know-how no uso de Python e Django criamos o Curso de Desenvolvimento Web com Python e Django nas modalidades in-company e online.
This website uses a Hackadelic PlugIn, Hackadelic SEO Table Of Contents 1.7.3.