Preparando o ambiente

De Wiki.bireme.org/pt
Ir para: navegação, pesquisa
Anotações realizadas seguindo o tutorial:
http://docs.djangobrasil.org/intro/tutorial01.html#intro-tutorial01

1) Está na VM portanto o python já está instalado.

fabio@ubuntu:~/django$ python
Python 2.7.2+ (default, Oct  4 2011, 20:03:08) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

2) Verificando se existe o django na máquina

>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named django
>>> 

No caso acima mostra que ainda não temos django

3) Instalando o DJANGO

Fiz o download da versão em
http://www.djangoproject.com/download/1.3.1/tarball/

Descompactei e instalei:
tar xzvf Django-1.3.1.tar.gz
cd Django-1.3.1
sudo python setup.py install

4) Verificando novamente se o django funciona

fabio@ubuntu:~/django$ cd testes/
fabio@ubuntu:~/django/testes$ ll
total 8
drwxrwxr-x 2 fabio fabio 4096 2012-03-06 09:13 ./
drwxrwxr-x 4 fabio fabio 4096 2012-03-06 09:13 ../
fabio@ubuntu:~/django/testes$ python
Python 2.7.2+ (default, Oct  4 2011, 20:03:08) 
[GCC 4.6.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> print django.get_version()
1.3.1
>>> 

5) Criando o projeto

Observando:
http://www.aprendendodjango.com/criando-um-blog-maneiro/

fabio@ubuntu:~/django$ mkdir projetos
fabio@ubuntu:~/django$ cd projetos
fabio@ubuntu:~/django/projetos$ ll
total 8
drwxrwxr-x 2 fabio fabio 4096 2012-03-06 09:17 ./
drwxrwxr-x 5 fabio fabio 4096 2012-03-06 09:17 ../

# Aplicando comando para criar projeto
fabio@ubuntu:~/django/projetos$ django-admin.py startproject meu_blog
fabio@ubuntu:~/django/projetos$ ll
total 12
drwxrwxr-x 3 fabio fabio 4096 2012-03-06 09:20 ./
drwxrwxr-x 5 fabio fabio 4096 2012-03-06 09:17 ../
drwxrwxr-x 2 fabio fabio 4096 2012-03-06 09:20 meu_blog/

fabio@ubuntu:~/django/projetos$ cd meu_blog/
fabio@ubuntu:~/django/projetos/meu_blog$ ll
total 24
drwxrwxr-x 2 fabio fabio 4096 2012-03-06 09:20 ./
drwxrwxr-x 3 fabio fabio 4096 2012-03-06 09:20 ../
-rw-r--r-- 1 fabio fabio    0 2012-03-06 09:20 __init__.py
-rw-r--r-- 1 fabio fabio  503 2012-03-06 09:20 manage.py
-rw-r--r-- 1 fabio fabio 5035 2012-03-06 09:20 settings.py
-rw-r--r-- 1 fabio fabio  571 2012-03-06 09:20 urls.py
fabio@ubuntu:~/django/projetos/meu_blog$ 

6) Teste de operatividade do Django
## Abrir um terminal somente para rodar o serviço
fabio@ubuntu:~/django/projetos/meu_blog$ python manage.py runserver
Validating models...

0 errors found
Django version 1.3.1, using settings 'meu_blog.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

*** Criei shell script para fazer isso mais fácil
vi start_DJANGO.sh
python manage.py runserver
pause

chmod +x start_DJANGO.sh

7) Fazendo com que o trabalho seja visível em outros computadores

fabio@ubuntu:~/django/projetos/meu_blog$ python manage.py runserver 0.0.0.0:8000
Validating models...

0 errors found
Django version 1.3.1, using settings 'meu_blog.settings'
Development server is running at http://0.0.0.0:8000/
Quit the server with CONTROL-C.

8) testando no browser

http://localhost:8000/

Aparecerá:
It worked!
Congratulations on your first Django-powered page.
...
...
...

9) SQLITE

fabio@ubuntu:~/django/projetos/meu_blog$ sqlite3
O programa 'sqlite3' não está instalado no momento.  Você pode instalá-lo digitando:
sudo apt-get install sqlite3
fabio@ubuntu:~/django/projetos/meu_blog$ sudo apt-get install sqlite3
Lendo listas de pacotes... Pronto
Construindo árvore de dependências       
Lendo informação de estado... Pronto
Os seguintes pacotes foram instalados automaticamente e já não são necessários:
  libgladeui-1-11 linux-headers-3.0.0-12 linux-headers-3.0.0-12-generic
Use 'apt-get autoremove' para removê-los.
Pacotes sugeridos:
  sqlite3-doc
Os NOVOS pacotes a seguir serão instalados:
  sqlite3
0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 261 não atualizados.
É preciso baixar 25,8 kB de arquivos.
Depois desta operação, 180 kB adicionais de espaço em disco serão usados.
Obter:1 http://us.archive.ubuntu.com/ubuntu/ oneiric/main sqlite3 i386 3.7.7-2ubuntu2 [25,8 kB]
Baixados 25,8 kB em 1s (19,0 kB/s) 
Selecionando pacote previamente não selecionado sqlite3.
(Lendo banco de dados ... 185120 ficheiros e directórios actualmente instalados.)
Desempacotando sqlite3 (de .../sqlite3_3.7.7-2ubuntu2_i386.deb) ...
Processando gatilhos para man-db ...
Configurando sqlite3 (3.7.7-2ubuntu2) ...
fabio@ubuntu:~/django/projetos/meu_blog$ 

10) Configurando

fabio@ubuntu:~/django/projetos/meu_blog$ vi settings.py

Linhas abaixo configurado para:
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'meu_blog.db',
LANGUAGE_CODE = 'pt_BR'

APPS
'django.contrib.admin',

11) Criando as tabelas do Banco

fabio@ubuntu:~/django/projetos/meu_blog$ python manage.py syncdb
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_user_permissions
Creating table auth_user_groups
Creating table auth_user
Creating table auth_message
Creating table django_content_type
Creating table django_session
Creating table django_site

You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (Leave blank to use 'fabio'): 
E-mail address: falbrito@gmail.com    
Password: 1234
Password (again): 1234
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
No fixtures found.
fabio@ubuntu:~/django/projetos/meu_blog$ 

****
Para facilitar foi criado gerar_banco_de_dados.sh
fabio@ubuntu:~/django/projetos/meu_blog$ vi gerar_banco_de_dados.sh
python manage.py syncdb

fabio@ubuntu:~/django/projetos/meu_blog$ chmod +x gerar_banco_de_dados.sh

fabio@ubuntu:~/django/projetos/meu_blog$ ./gerar_banco_de_dados.sh 
Creating tables ...
Creating table blog_artigo
Installing custom SQL ...
Installing indexes ...
No fixtures found.

12) Editando o arquivo urls.py e habilitando o ADMIN

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns(,
    # Example:
    # (r'^mysite/', include('mysite.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^admin/(.*)', admin.site.root),
)

13) Rodar novamente a criação do banco e depois o webserver
./gerar_banco_de_dados.sh
./start_DJANGO.sh # Esse rodar em um janela separada