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.






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