Anotações de Estudo

De Wiki.bireme.org/pt
Ir para: navegação, pesquisa
Iniciando o Estudo programado
14) Criando aplicação - blog

fabio@ubuntu:~/django/projetos/meu_blog$ mkdir blog
# Criar diretorio para aplicação
fabio@ubuntu:~/django/projetos/meu_blog$ cd blog/

# Criar arquivos necessários
fabio@ubuntu:~/django/projetos/meu_blog/blog$ touch __init__.py
fabio@ubuntu:~/django/projetos/meu_blog/blog$ touch models.py
fabio@ubuntu:~/django/projetos/meu_blog/blog$ touch admin.py

# Editar models.py
from django.db import models

class Artigo(models.Model):
  titulo = models.CharField(max_length=100)
  conteudo = models.TextField()
  publicacao = models.DateTimeField()

# Editar admin.py
from django.contrib import admin
from models import Artigo
admin.site.register(Artigo)

# Voltar no diretório anterior e editar o arquivo settings.py
incluir em:
INSTALLED_APPS =
'blog',

# Novamente aplicar comando para criar banco
./gerar_banco_de_dados.sh
./start_DJANGO.sh # Esse rodar em um janela separada

# Voltar ao navegador e atualizar a página (F5)
Aparecerá agora o item -Blog e nele o subitem Artigos. Clicando sobre Artigos abrirá um formulário
com os campos "titulo", "conteudo" e "publicacao" conforme foi declarado no arquivo "models.py"

Até aqui temos a interface do sistema funcionando, mas o usuário verá outra página. Acessará uma página
diretamente por uma URL. Então devemos criar um arquivo html que consomirá as variáveis "titulo", "conteudo" e "publicacao"

# Editar o arquivo urls.py e deixar como abaixo

from blog.models import Artigo

urlpatterns = patterns(,
    (r'^$', 'django.views.generic.date_based.archive_index',
     {'queryset': Artigo.objects.all(), 'date_field': 'publicacao'}),
    url(r'^admin/', include(admin.site.urls)),
)

# Criar arquivo artigo_archive.html
Dentro do diretório "blog" criar diretorio "templates", e dentro deste criar o diretório "blog" com o arquivo artigo_archive.html
com o seguinte conteudo
 <html>
 <body>
 <h1>Meu blog</h1>
 {% for artigo in latest %}
 <h2> {{ artigo.titulo }} </h2>
 {{ artigo.counteudo }}
 <br>
 {{ artigo.publicao }}
 {% endfor %}
 </body>
 </html>
 
15) Criando RSS no projeto
# Ajustando settings fundamentais do projeto

Editado arquivo setings.py
alterado TIME_ZONE = 'America/Sao_Paulo'

# Alterando arquivo models.py
fabio@ubuntu:~/django/projetos/meu_blog/blog$ pwd
/home/fabio/django/projetos/meu_blog/blog

gedit models.py

from datetime import datetime
from django.db import models

class Artigo(models.Model):
    class Meta:
        ordering = ('-publicacao',)

    titulo = models.CharField(max_length=100)
    conteudo = models.TextField()
    publicacao = models.DateTimeField(default=datetime.now, blank=True)

# Alterar arquivo settings.py 
na TUPLA INSTALLED_APPS incluir o contrib
'django.contrib.syndication'

# Alterar urls.py
urlpatterns = patterns(,
    (r'^$', 'django.views.generic.date_based.archive_index',
        {'queryset': Artigo.objects.all(), 'date_field': 'publicacao'}),
    (r'^admin/(.*)', admin.site.root),

    (r'^rss/(?P<url>.*)/$', 'django.contrib.syndication.views.feed',
        {'feed_dict': {'ultimos': UltimosArtigos}}),
)

# Inserir
from blog.feeds import UltimosArtigos

# Rodar criação do banco e start do Django
./gerar_banco_de_dados.sh
./start_DJANGO.sh

# Acessar http://localhost:8000/rss/ultimos/

O resultado mostrou "Artigo object"
Para melhorar isso devemos criar 2 templates
no diretório blogs criar diretório feeds, dentro desse criar os arquivos com seus respectivos conteúdos.
ultimos_title.html
{{ obj.titulo }}
ultimos_description.html
{{ obj.conteudo }}
Refresh em http://localhost:8000/rss/ultimos/