Tutorial: Django (framework Python)

4 de Dezembro de 2008 · 15 Comentários

Tutorial Django para a sua Hospedagem Linux

Para saber mais sobre a estrutura montada em mod_python para atender ao Django, veja o outro post.

OBS:  usuario = login usado no ftp

1. Logue via SSH e baixe a última versão 1.1.x no seu “home”:

$cd
$
wget http://www.djangoproject.com/download/1.1.1/tarball/

2. Descompacte:

$tar xvzf Django-1.1.x-final.tar.gz
$rm -f Django-1.1.x-final.tar.gz

3. Configure o ambiente:

$export PATH=$PATH:$HOME/Django-1.1.x-final/django/bin
$export PYTHONPATH=$PYTHONPATH:$HOME/Django-1.1.x-final

4. Crie um projeto, por exemplo, o projeto teste:

$cd public_html
$django-admin.py startproject teste

5. Crie as configurações do projeto:

Crie um arquivo teste/.htaccess com conteúdo:

SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE teste.settings
PythonInterpreter teste
PythonOption django.root /teste
PythonPath "['/home/usuario/Django-1.1.x-final', '/home/usuario/public_html'] + sys.path

6. Crie o banco de dados no painel de controle e o configure o arquivo de acesso:

Edite teste/settings.py, alterando os valores:

DATABASE_ENGINE = 'mysql'
DATABASE_NAME = 'base'
DATABASE_USER = 'login'
DATABASE_PASSWORD = 'senha'
DATABASE_HOST = 'dbmyxxxx.whservidor.com'

7. Instale as tabelas usadas pelas aplicações que vem por padrão no Django:

$python teste/manage.py syncdb

Responda às questões criando um “superuser”.

8. Copie os arquivos usados pela administração (ou use “symlinks”):

$cp -a /home/usuario/Django-1.1.x-final/django/contrib/admin/media  ~/public_html

9. Não é necessário usar o comando python manage.py runserver, o ambiente já está pronto!

Basta agora criar as suas próprias aplicações.

*************************************************

FAQ/Questões:

- Já tenho um projeto Django no meu ambiente de testes, como publicar?

Basta criar o arquivo .htaccess na pasta escolhida, copiar os arquivos (arrumando o mapeamento para o banco de dados) e restaurar o MySQL na nossa estrutura.

- De acordo com os criadores do Django, não é inseguro publicar o projeto diretamente no public_html?

A configuração do UOL HOST faz com que os arquivos .py nunca sejam baixados, pois eles também estão mapeados como cgi caso digite erroneamente o arquivo .htaccess. No entanto, é boa prática não colocar senhas e outros dados críticos diretamente no projeto, mas sim em módulos python não visíveis via web.

Atualização 23/11/2009: Adaptado para a versão 1.1.1 do Django.

Compartilhe:
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google

Tags: Desenvolvedores · Tecnologia · Tutoriais

15 respostas até agora ↓

  • 1 Ronoaldo Pereira // 5 de Dezembro de 2008 às 20:16

    Parabéns! Excelente iniciativa. Sou desenvolvedor Django e usário do Uol Host. Estava aguardando por uma novidade como esta. Já estou trabalhando em meus projetos.

  • 2 Ronoaldo Pereira // 7 de Dezembro de 2008 às 9:35

    Sobre o FAQ acima, podemos evitar publicar os arquivos do seu projeto django diretamente no public_html. Basta criar uma pasta com o nome do seu projeto (ou qualquer outro nome que você queira usar na URL), e criar o .htacess assim:

    SetHandler python-program
    PythonHandler django.core.handlers.modpython
    SetEnv DJANGO_SETTINGS_MODULE seu_projeto.settings
    PythonInterpreter seu_projeto
    PythonOption django.root /sua_url
    PythonPath “['/home/usuario/caminho/para/o/django/', '/home/usuario/caminho/para/raiz/das/suas/aplicacoes'] + sys.path”

    Desta forma, sua aplicação fica adequadamente disponível via mod_python, mas o seu conteúdo não necessita estar todo no public_html, preservando assim arquivos que você não quer disponibilizar.

    Lembre-se de configurar o MEDIA_ROOT, e demais propriedades de seu projeto referentes a caminhos visíveis adequadamente no settings.py e urls.py

  • 3 Rodrigo // 11 de Dezembro de 2008 às 0:18

    Olá, quais módulos estão instalados com o python? PIL por exemplo, está disponível?

  • 4 Renato // 11 de Dezembro de 2008 às 10:49

    Rodrigo,
    Já temos o PIL instalado. Se precisar de mais algum, nos avise.
    []s

  • 5 Rodolfo Pereira // 6 de Abril de 2009 às 22:43

    Muito bom o Tutorial, vale muito a pena.
    gostaria de saber se o SQLite3 está instalado, tive problemas ao usá-lo.
    Existe a possibilidade de instalar o Módulo SQLite3 também, ou só é possível usar o MySQL mesmo?

  • 6 Renato // 7 de Abril de 2009 às 11:48

    Rodolfo,
    O SQLite3 está instalado e deveria funcionar. Qualquer dúvida mais técnica, peço que abra um chamado no nosso helpdesk por favor.
    Renato.

  • 7 Marcelo // 22 de Abril de 2009 às 0:11

    O tutorial ajudou muito pessoal, mas ainda tenho uma dúvida: como configurar o .htaccess para permitir acessar estáticos em um diretório “media” localizado dentro do diretório raiz de um projeto django, sem que o django assuma a url acessada como uma sem correspondência no “urls.py”?

  • 8 Renato // 29 de Abril de 2009 às 19:45

    Marcelo,
    No arquivo .htaccess do diretório onde estão os seus dados estáticos, coloque:
    SetHandler None
    Deve funcionar normalmente.
    Renato.

  • 9 Valder Gallo // 29 de Maio de 2009 às 17:26

    Eu tenho acesso a utilizar easy_install para adicionar aplicativos do google e coisas do tipo ????

  • 10 Renato // 1 de Junho de 2009 às 20:46

    Valder,
    Instalamos o modulo easy_install. Qualquer coisa, entre em contato conosco por favor.
    Renato.

  • 11 Fabrício // 10 de Junho de 2009 às 10:30

    Alguma possibilidade de rodarem o Django com wsgi?

  • 12 Renato // 10 de Junho de 2009 às 18:34

    Fabricio,
    A principio manteremos o mod_python. Para produtividade ele se encaixa melhor no nosso contexto por que não requer login no servidor e reinicio dos processos quando se muda o codigo. Alem disso, não há processos extras no servidor que podem comprometer o desempenho e o mod_python, de forma segura, maximiza a performance do ambiente como um todo.
    Renato.

  • 13 Fred Chevitarese // 23 de Junho de 2009 às 13:56

    Consegui resolver meu problema criando o arquivo .htacess dentro da pasta public_html, e não dentro da pasta do projeto conforme indicado neste tutorial!
    Agradeço o suporte da uolhost por ter me feito queimar dúzias de neurônios para resolver meu problema sozinho!

    Obrigado

  • 14 Scherney // 21 de Novembro de 2009 às 16:12

    o link para download é
    wget http://www.djangoproject.com/download/1.1.1/tarball/

    o link acima não funciona mais .

  • 15 Renato // 23 de Novembro de 2009 às 10:43

    Bom dia,
    Atualizamos o tutorial para a versão 1.1.x
    Obrigado

Deixe um comentário