segunda-feira, 19 de dezembro de 2011

Dizendo um "Conseguir cria uma página em Django _O/"

Olá.
Nesta parte iremos criar nossa primeira página HTML em Django. Para isso, entre no diretório de seu projeto e digite o comando ./manage.py startapp agenda (caso tenho seguido o passo anteriormente descrito, para diminuir o tamanho do comando manage.py), se não fez isso, digite o comando python manage.py startapp agenda. Após isso, digite o comando ls e você verá que uma nova pasta foi criada dentro de seu projeto com o nome de agenda. Entre dentro da pasta agenda digitando o comando cd agenda. Feito isso, você verá que existem três arquivos dentro dessa pasta: __init__.py, models.py e views.py.
  • _init__: Nada mais é do que um pacote do Python;
  • models.py: Constrói a tabela do banco de dados de acordo com as definições colocadas no mesmo;
  • views.py: Parte de controle. É aqui de definimos funções do nosso CRUD, como por exemplo, pegar todos os objetos salvos no banco de dados e "jogar" no HTML. Deletar um determinado objeto e etc.
Na pasta de seu projeto, digite gedit, ou pico (o editor de sua preferência)  seguido de settings.py(você só precisa digitar as primeiras letras de qualquer nome e clicar TAB que o sistema auto-completa a palavra). Após isso, vá até o INSTALLED_APPS. Você verá algo como:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
)

Abaixo do nome 'django.contrib.staticfiles', digite 'agenda', para ativar essa aplicação do projeto. Feito isso, feche o settings.py e agora entre na urls.py. Dentro desse arquivo, você irá encontrar algo como:


from django.conf.urls.defaults import patterns, include, url

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

urlpatterns = patterns('',
                  

    # Examples:
    # url(r'^$', 'Agenda.views.home', name='home'),
    # url(r'^Agenda/', include('Agenda.foo.urls')),

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

    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),
)

Abaixo da linha # url(r'^Agenda/', include('Agenda.foo.urls')), digite esse comando: (r'^$', 'agenda.views.index'),

E para que serve isso? É algo sobrenatural?
Como sabemos, e se não souber vai saber agora, que aplicações web funcionam da seguinte maneira.
  • Usuário: - Hum...Vou clicar nessa foto "aniversário de Chiquinha";
  • Browser(Navegador): - Opa! Recebi uma requisição para abrir a foto "Chiquinha". Ô servidor, quero que você me devolva um arquivo chamado "aniversário_de_Chiquinha.jpeg";
  • Servidor: - Tenha calma!. Vou procurar esse arquivo. Pronto. Ai está o arquivo aniversário_de_Chiquinha.jpeg que você me solicitou;
  • Browser(Navegador): - Opa.Valeu ai chapa. Usuário, ai está a foto que você solicitou.
Aplicações web funcionam dessa forma. O browser faz requisições ao servidor que, em contra-partida, procura o arquivo solicitado no seu banco de dados e o devolve para o navegador. Então, o mesmo exibe o arquivo solicitado pelo usuário.

Sim, e pra que entender isso?


É para entender que o django permite que o desenvolvedor crie mapas para definir URLs nas quais chamarão funções criadas na views.py. Algo do tipo "pedido/resposta" como foi descrito acima.



Após isso, abra o diretório agenda e abra o arquivo views.py(para não ficar abrindo e fechando diretórios, clique CTRL+T para abrir várias abas. Dentro de cada aba, você pode abrir diretórios e/ou arquivos diferentes). Feito isso, digite esses comandos:



 # -*-coding: utf-8-*-

from django.http import HttpResponse

def index(request):
  return HttpResponse("Conseguir cria uma página em Django _O/")

Após isso, é só disparar o servidor digitando: ./manage.py runserver  ou python manage.py runserver

Pronto. Agora é só abrir o navegador, digitar o endereço do local host: 127.0.0.1:8000 para ver o resultado. Caso já esteja aberto o local host, é só clicar F5.
 

Nenhum comentário:

Postar um comentário