jump to navigation

django python 2013/04/25

Posted by gsavix in Memorando.
Tags: , , , , ,
trackback

Django de relance!

Django foi desenvolvido rapidamente em um ambiente de sala de noticias, sendo desenhado para tornar o desenvolvimento de aplicações web rápido e fácil. Informalmente veja como escrever uma aplicação que grava banco de dados usando Django.

O objetivo desse documento é proporcionar detalhes técnicos suficientes para entender como Django funciona, mas tenha em mente que isto não é um tutorial ou manual de referência pois na url do projeto Django temos ambos detalhadamente [https://docs.djangoproject.com/en/1.5/intro/tutorial01/]

Desenhando seu modelo

Desenhando seu modelo
Django também pode ser usado sem um banco de dados. Django vem com um mapeador relacional de objetos o qual associa e descreve objetos codificados em python e o seu banco de dados.

A sintaxe do modelo de dados oferece diversas maneiras de representar seus modelos, além disso resolve dois anos de problemas com esquemas de bancos de dados. Segue um rápido exemplo o qual pode ser salvo em um arquivo chamado mysite/news/models.py

class Reporter(models.Model):
    full_name = models.CharField(max_length=70)

    def __unicode__(self):
        return self.full_name

class Article(models.Model):
    pub_date = models.DateField()
    headline = models.CharField(max_length=200)
    content = models.TextField()
    reporter = models.ForeignKey(Reporter)

Instalando

execute o comando de linha para criar as tabelas do bando de dados automaticamente:

manage.py syncdb

O comando syncdb busca em todos os seus modelos disponíveis e cria as tabelas que ainda não existam em seu banco de dados.

Aproveite a liberdade da API

Com isso há liberdade para uso livre e sofisticado da  Python API para acessar seus dados.  A API é criada em tempo de execução e não há necessidade da geração de código.

# Import the models we created from our "news" app
>>> from news.models import Reporter, Article

# No reporters are in the system yet.
>>> Reporter.objects.all()
[]

# Create a new Reporter.
>>> r = Reporter(full_name='John Smith')

# Save the object into the database. You have to call save() explicitly.
>>> r.save()

# Now it has an ID.
>>> r.id
1

# Now the new reporter is in the database.
>>> Reporter.objects.all()
[<Reporter: John Smith>]

# Fields are represented as attributes on the Python object.
>>> r.full_name
'John Smith'

# Django provides a rich database lookup API.
>>> Reporter.objects.get(id=1)
<Reporter: John Smith>
>>> Reporter.objects.get(full_name__startswith='John')
<Reporter: John Smith>
>>> Reporter.objects.get(full_name__contains='mith')
<Reporter: John Smith>
>>> Reporter.objects.get(id=2)
Traceback (most recent call last):
    ...
DoesNotExist: Reporter matching query does not exist. Lookup parameters were {'id': 2}

# Create an article.
>>> from datetime import date
>>> a = Article(pub_date=date.today(), headline='Django is cool',
...     content='Yeah.', reporter=r)
>>> a.save()

# Now the article is in the database.
>>> Article.objects.all()
[<Article: Django is cool>]

# Article objects get API access to related Reporter objects.
>>> r = a.reporter
>>> r.full_name
'John Smith'

# And vice versa: Reporter objects get API access to Article objects.
>>> r.article_set.all()
[<Article: Django is cool>]

# The API follows relationships as far as you need, performing efficient
# JOINs for you behind the scenes.
# This finds all articles by a reporter whose name starts with "John".
>>> Article.objects.filter(reporter__full_name__startswith="John")
[<Article: Django is cool>]

# Change an object by altering its attributes and calling save().
>>> r.full_name = 'Billy Goat'
>>> r.save()

# Delete an object with delete().
>>> r.delete()
def __unicode__(self): return self.headline

 

 

Anúncios

Comentários»

No comments yet — be the first.

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: