<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Rafael (Core Dump)</title>
	<atom:link href="http://rafacdb.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://rafacdb.wordpress.com</link>
	<description>Linux (Archlinux), Programação e outros.</description>
	<lastBuildDate>Thu, 10 Jan 2008 01:59:03 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='rafacdb.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/2a5b7f5bfd801c9756391f7d64c67103?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Rafael (Core Dump)</title>
		<link>http://rafacdb.wordpress.com</link>
	</image>
			<item>
		<title>Meu novo blog! feito em Django!</title>
		<link>http://rafacdb.wordpress.com/2008/01/10/meu-novo-blog-feito-em-django/</link>
		<comments>http://rafacdb.wordpress.com/2008/01/10/meu-novo-blog-feito-em-django/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 01:58:16 +0000</pubDate>
		<dc:creator>Rafael Campos de Bastiani</dc:creator>
				<category><![CDATA[Archlinux]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[Jogos]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[hospedagem]]></category>

		<guid isPermaLink="false">http://rafacdb.wordpress.com/2008/01/10/meu-novo-blog-feito-em-django/</guid>
		<description><![CDATA[Pessoal estou em um novo endereço e o que eh melhor, estou com um blog feito em django, levei algum tempo mas jah esta pronto, eh o http://rfdev.org
Manterei por mais algum tempo esse blog aqui, mas darei mais atenção para o outro, aguardo a visita de vcs!
[]&#8217;s
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rafacdb.wordpress.com&blog=1328312&post=43&subd=rafacdb&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Pessoal estou em um novo endereço e o que eh melhor, estou com um blog feito em django, levei algum tempo mas jah esta pronto, eh o <a href="http://rfdev.org"><strong>http://rfdev.org</strong></a><br />
Manterei por mais algum tempo esse blog aqui, mas darei mais atenção para o outro, aguardo a visita de vcs!</p>
<p>[]&#8217;s</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rafacdb.wordpress.com/43/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rafacdb.wordpress.com/43/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rafacdb.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rafacdb.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rafacdb.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rafacdb.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rafacdb.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rafacdb.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rafacdb.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rafacdb.wordpress.com/43/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rafacdb.wordpress.com/43/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rafacdb.wordpress.com/43/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rafacdb.wordpress.com&blog=1328312&post=43&subd=rafacdb&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rafacdb.wordpress.com/2008/01/10/meu-novo-blog-feito-em-django/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76a2ec9ca8fde7a2b6e2c4aa23c2153f?s=96&#38;d=identicon" medium="image">
			<media:title type="html">rafacdb</media:title>
		</media:content>
	</item>
		<item>
		<title>Primeira edição da Almanarch</title>
		<link>http://rafacdb.wordpress.com/2008/01/01/primeira-edicao-da-almanarch/</link>
		<comments>http://rafacdb.wordpress.com/2008/01/01/primeira-edicao-da-almanarch/#comments</comments>
		<pubDate>Tue, 01 Jan 2008 22:42:12 +0000</pubDate>
		<dc:creator>Rafael Campos de Bastiani</dc:creator>
				<category><![CDATA[Archlinux]]></category>
		<category><![CDATA[Almanarch]]></category>

		<guid isPermaLink="false">http://rafacdb.wordpress.com/2008/01/01/primeira-edicao-da-almanarch/</guid>
		<description><![CDATA[
Olá pessoal!
Venho com uma noticia para vocês, a primeira edição da zine do Archlinux esta no ar Almanarch. É muito bom saber que a comunidade brasileira esta trabalhando para divulgar esta ótima distribuição linux. Com essa revista eletrônica e mais os wiki e blogs e a comunidade oficial brasileira qualquer um com um pouco de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rafacdb.wordpress.com&blog=1328312&post=41&subd=rafacdb&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><img src='http://rafacdb.files.wordpress.com/2008/01/archlogonew.gif' alt='Novo logo do archlinux' /><br />
Olá pessoal!<br />
Venho com uma noticia para vocês, a primeira edição da zine do Archlinux esta no ar <a href="http://www.archlinux-br.org/index.php/almanarch">Almanarch</a>. É muito bom saber que a comunidade brasileira esta trabalhando para divulgar esta ótima distribuição linux. Com essa revista eletrônica e mais os wiki e blogs e a comunidade oficial brasileira qualquer um com um pouco de conhecimento em Linux já consegue usar o Archlinux tranqüilamente pois o pessoal sempre esta disposto a ajudar, e mesmo que não tenhamos documentação em brasileiro a comunidade já quebra um galho.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rafacdb.wordpress.com/41/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rafacdb.wordpress.com/41/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rafacdb.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rafacdb.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rafacdb.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rafacdb.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rafacdb.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rafacdb.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rafacdb.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rafacdb.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rafacdb.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rafacdb.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rafacdb.wordpress.com&blog=1328312&post=41&subd=rafacdb&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rafacdb.wordpress.com/2008/01/01/primeira-edicao-da-almanarch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76a2ec9ca8fde7a2b6e2c4aa23c2153f?s=96&#38;d=identicon" medium="image">
			<media:title type="html">rafacdb</media:title>
		</media:content>

		<media:content url="http://rafacdb.files.wordpress.com/2008/01/archlogonew.gif" medium="image">
			<media:title type="html">Novo logo do archlinux</media:title>
		</media:content>
	</item>
		<item>
		<title>Model Referência (resumido e editado)</title>
		<link>http://rafacdb.wordpress.com/2007/12/15/model-referencia-resumido-e-editado/</link>
		<comments>http://rafacdb.wordpress.com/2007/12/15/model-referencia-resumido-e-editado/#comments</comments>
		<pubDate>Sat, 15 Dec 2007 18:50:15 +0000</pubDate>
		<dc:creator>Rafael Campos de Bastiani</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Model]]></category>

		<guid isPermaLink="false">http://rafacdb.wordpress.com/2007/12/15/model-referencia-resumido-e-editado/</guid>
		<description><![CDATA[O model(modelo) é simples, é a fonte de dados definitiva para os seus dados. Ela contém os campos e comportamentos essenciais para os seus dados armazenados. Em geral, um model é uma tabela simples de um banco de dados.
O básico:

O model é uma classe Python com subclasses django.db.models.Model.

Os atributos do model representam um campo no [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rafacdb.wordpress.com&blog=1328312&post=38&subd=rafacdb&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>O model(modelo) é simples, é a fonte de dados definitiva para os seus dados. Ela contém os campos e comportamentos essenciais para os seus dados armazenados. Em geral, um model é uma tabela simples de um banco de dados.</p>
<p>O básico:</p>
<ol>
O model é uma classe Python com subclasses django.db.models.Model.</ol>
<ol>
Os atributos do model representam um campo no banco de dados.</ol>
<ol>
Model metadata (não as informações dos fields) são informadas em uma classe chamada Meta.</ol>
<ol>
O metadata é usado pela pagina de administração do Django que vai dentro da classe chamada Admin.</ol>
<p>Com tudo isso, Django lhe da uma API de acesso ao banco de dados gerada automaticamente, isso esta explicado em <a href="http://www.djangoproject.com/documentation/db-api/">http://www.djangoproject.com/documentation/db-api/</a></li>
<p></p>
<p>Exemplo rápido.<br />
Nesse exemplo definimos um model chamado Pessoa, com pri_nome e ult_nome:</p>
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">
<span style="color:#ff8c00;font-weight:bold;">class</span> <span style="color:#0000cd;font-weight:bold;">Pessoa</span>(models.Model):
    pri_nome = models.CharField(max_length=30)
    ult_nome = models.CharField(max_length=30)
</pre>
<p>pri_nome e ult_nome são campos de um model. Cada campo é especificado por uma classe que denomina um atributo, e cada atributo é relacionado a uma coluna em um banco de dados.</p>
<p>O model de Pessoa criado a cima cria uma tabela no banco de dados como essa:<br />
CREATE TABLE aplicacao_pessoa (<br />
    &#8220;id&#8221; serial NOT NULL PRIMARY KEY,<br />
    &#8220;pri_nome&#8221; varchar(30) NOT NULL,<br />
    &#8220;ult_nome&#8221; varchar(30) NOT NULL<br />
);</p>
<p><strong>Tabelas</strong></p>
<p>O nome da tabela, aplicacao_pessoa, é derivado automaticamente do metadata do model, porém pode ser alterada.<br />
Para poupar o seu tempo o Django deriva o nome da tabela do banco de dados a partir do nome da classe do model e da aplicação que a contem. O nome da tabela do banco de dados é construído pela junção do nome da aplicação &#8211; o nome usado em manage.py startapp &#8211; com o nome da classe do model, com um underscore entre eles.<br />
Para alterar o nome da tabela no banco de dados use o parâmetro db_table na classe Meta, por exemplo:</p>
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">
<span style="color:#ff8c00;font-weight:bold;">class</span> <span style="color:#0000cd;font-weight:bold;">Pessoa</span>(models.Model):
    pri_nome = models.CharField(max_length=30)
    ult_nome = models.CharField(max_length=30)

    <span style="color:#ff8c00;font-weight:bold;">class</span> <span style="color:#0000cd;font-weight:bold;">Meta</span>:
        db_table = 'pessoa'
</pre>
<p><strong>Chave Primária Automática</strong></p>
<p>Por padrão o Django da ao model um campo como esse:</p>
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">
id = models.AutoField(primary_key=True)
</pre>
<p>Essa é uma chave primária que gera os códigos automaticamente (auto-increment).</p>
<p>Se você quiser especificar uma chave primária, especifique primary_key=True em um de seus campos. Se o Django ver que você especificou uma primary_key, ele não vai adicionar automaticamente uma coluna id.</p>
<p>Cada model requer exatamente um campo que contenha uma primary_key=True.</p>
<p>O CREATE TABLE nesse exemplo é formatado usando a sintaxe do PostgreSQL, mas devemos notar que o Django adapta o SQL ao banco de dados especificado no arquivo de configurações.</p>
<p><strong>Campos (Fields)</strong></p>
<p>É a parte mais importante de um model – e é a única parte requeria pelo model – é a lista dos campos definidos no banco de dados. Os atributos dos campos são especificados pelas classes.</p>
<p>Exemplo:</p>
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">
<span style="color:#ff8c00;font-weight:bold;">class</span> <span style="color:#0000cd;font-weight:bold;">Musico</span>(models.Model):
    pri_nome = models.CharField(max_length=50)
    ult_nome = models.CharField(max_length=50)
    instrumento = models.CharField(max_length=100)

<span style="color:#ff8c00;font-weight:bold;">class</span> <span style="color:#0000cd;font-weight:bold;">Album</span>(models.Model):
    artista = models.ForeignKey(Musico)
    nome = models.CharField(max_length=100)
    data_lancamento = models.DateField()
    num_estrelas = models.IntegerField()
</pre>
<p><strong>Restrições nos nomes dos campos (fields)</strong></p>
<p>Django tem duas restrições aos nomes dos campos no model:<br />
1.	O nome do campo não pode ser uma palavra reservada do Python, se não isso resultara em um erro de sintaxe do Python. Por exemplo:</p>
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">
<span style="color:#ff8c00;font-weight:bold;">class</span> <span style="color:#0000cd;font-weight:bold;">Exemplo</span>(models.Model):
    pass = models.IntegerField() # 'pass' é uma palavra reservada!
</pre>
<p>2.	O nome do campo não pode conter mais do que um underscore em uma linha, de acordo com a query do Django isso causa um trabalho repetitivo de sintaxe. Por Exemplo:</p>
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">
<span style="color:#ff8c00;font-weight:bold;">class</span> <span style="color:#0000cd;font-weight:bold;">Exemplo</span>(models.Model):
    foo__bar = models.IntegerField()
    # 'foo__bar' contem dois underscores!
</pre>
<p><strong>Tipos de campos</strong></p>
<p>Cada campo em seu model é uma instancia apropriada da classe Field. O Django usa a classe Field para determinar os tipos como:</p>
<ol>
O tipo de uma coluna no banco de dados (ex. INTEGER, VARCHAR).</ol>
<ol>
O widget usado na interface de administração do Django (ex.&lt;input type=&#8221;text&#8221;&gt;,&lt;select&gt;).</ol>
<ol>
É requerido o mínimo de validação, usado na adminstração do Django e manipuladores.</ol>
<p>Lista completa dos tipos de campos:<br />
    * AutoField<br />
    * BooleanField<br />
    * CharField<br />
    * CommaSeparatedIntegerField<br />
    * DateField<br />
    * DateTimeField<br />
    * DecimalField<br />
    * EmailField<br />
    * FileField<br />
    * FilePathField<br />
    * FloatField<br />
    * ImageField<br />
    * IntegerField<br />
    * IPAddressField<br />
    * NullBooleanField<br />
    * PhoneNumberField<br />
    * PositiveIntegerField<br />
    * PositiveSmallIntegerField<br />
    * SlugField<br />
    * SmallIntegerField<br />
    * TextField<br />
    * TimeField<br />
    * URLField<br />
    * USStateField<br />
    * XMLField</p>
<p>Para ver detalhes sobre cada tipo leia a documentação oficial <a href="http://www.djangoproject.com/documentation/model-api/#field-types">http://www.djangoproject.com/documentation/model-api/#field-types</a></p>
<p><strong>Opções dos campos</strong></p>
<p>Segue todos os argumentos avaliados para todos os tipos de campos, todos são opcionais.</p>
<p><strong><em>null</em></strong><br />
Se True, o Django guarda um valor NULL no banco de dados. Padrão é False.</p>
<p>Mantenha os valores para string vazios e não como NULL. Use apenas null=True para campos não string como integers, booleans, e dates, Para todos os outros use blank=True se você permitir campos vazios no formulário, o parâmetro NULL afeta apenas o banco de dados.</p>
<p><strong><em>blank</em></strong><br />
Se True, o campo poderá ficar vazio. Padrão é False.<br />
Se o campo estiver como blank=False o campo será requerido.</p>
<p># choices<br />
# core<br />
# db_column<br />
# db_index<br />
# db_tablespace<br />
# default<br />
# editable<br />
# help_text<br />
# primary_key<br />
# radio_admin<br />
# unique<br />
# unique_for_date<br />
# unique_for_month<br />
# unique_for_year<br />
# validator_list</p>
<p>Para ver o que cada opção dessas faz acesse a documentação oficial <a href="http://www.djangoproject.com/documentation/model-api/#field-options">http://www.djangoproject.com/documentation/model-api/#field-options</a></p>
<p><strong>Descrição do nome de campos</strong></p>
<p>Para cada tipo, exceto por ForeignKey, ManyToManyField e OneToOneField, se tem um primeiro argumento opcional &#8211; a descrição do nome. Se a descrição não for alterada o Django atribui automaticamente usando o nome do campo, convertendo os espaços em underscores.</p>
<p>Nesse exemplo, a descrição do campo é &#8220;Primeiro nome da pessoa&#8221;:</p>
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">
pri_nome = models.CharField("Primeiro nome da pessoa", max_length=30)
</pre>
<p>E nesse exemplo a descrição do campo é &#8220;pri_nome&#8221;:</p>
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">
pri_nome = models.CharField(max_length=30)
</pre>
<p>ForeignKey, ManyToManyField e OneToOneField requerem que o primeiro argumento seja uma classe de um model, então é usado o argumento verbose_name:</p>
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">
poll = models.ForeignKey(Poll, verbose_name="the related poll")
sites = models.ManyToManyField(Site, verbose_name="list of sites")
place = models.OneToOneField(Place, verbose_name="related place")
</pre>
<p>Convém não deixar a primeira letra em maiúscula em verbose_name. O Django converte automaticamente a primeira letra para maiúscula.<br />
Para saber mais sobre os relacionamentos consulte a documentação oficial <a href="http://www.djangoproject.com/documentation/model-api/#relationships">http://www.djangoproject.com/documentation/model-api/#relationships</a></p>
<p><strong>Admin options</strong></p>
<p>Se você quiser que seu model fique visível ao site de administração do Django, adicione a classe Admin assim:</p>
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">
<span style="color:#ff8c00;font-weight:bold;">class</span> <span style="color:#0000cd;font-weight:bold;">Pessoa</span>(models.Model):
    pri_name = models.CharField(max_length=30)
    ult_name = models.CharField(max_length=30)

    <span style="color:#ff8c00;font-weight:bold;">class</span> <span style="color:#0000cd;font-weight:bold;">Admin</span>:
        # Admin options aqui
        pass
</pre>
<p>A classe Admin diz para o Django mostrar o model no site de administração.<br />
Para ver mais opções da classe Admin veja a documentação oficial <a href="http://www.djangoproject.com/documentation/model-api/#admin-options">http://www.djangoproject.com/documentation/model-api/#admin-options</a></p>
<p>Isso foi um resumo bem curto da documentação oficial, abordei apenas aquilo que acho interessante para se iniciar o aprendizado em models e todos os seus conceitos.<br />
Espero que gostem, aceito críticas e sugestões para melhorar o artigo.<br />
Ref. <a href="http://www.djangoproject.com/documentation/model-api/">Model-API</a></p>
<p>Abraços</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rafacdb.wordpress.com/38/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rafacdb.wordpress.com/38/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rafacdb.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rafacdb.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rafacdb.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rafacdb.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rafacdb.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rafacdb.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rafacdb.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rafacdb.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rafacdb.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rafacdb.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rafacdb.wordpress.com&blog=1328312&post=38&subd=rafacdb&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rafacdb.wordpress.com/2007/12/15/model-referencia-resumido-e-editado/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76a2ec9ca8fde7a2b6e2c4aa23c2153f?s=96&#38;d=identicon" medium="image">
			<media:title type="html">rafacdb</media:title>
		</media:content>
	</item>
		<item>
		<title>Usando NewForms com ModelForm</title>
		<link>http://rafacdb.wordpress.com/2007/12/10/usando-newforms-com-modelform/</link>
		<comments>http://rafacdb.wordpress.com/2007/12/10/usando-newforms-com-modelform/#comments</comments>
		<pubDate>Mon, 10 Dec 2007 16:06:46 +0000</pubDate>
		<dc:creator>Rafael Campos de Bastiani</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[modelform]]></category>
		<category><![CDATA[newforms]]></category>

		<guid isPermaLink="false">http://rafacdb.wordpress.com/2007/12/10/usando-newforms-com-modelform/</guid>
		<description><![CDATA[É isso ae! To de volta para ajudar aqueles que estão quebrando a cabeça assim como eu estava a uns dias atrás para usar essas classes do django que facilitam muito o desenvolvimento. Eu ainda estou de boca aberta com o que o Django é capaz de fazer e hoje me pergunto “porque estou desenvolvendo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rafacdb.wordpress.com&blog=1328312&post=35&subd=rafacdb&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>É isso ae! To de volta para ajudar aqueles que estão quebrando a cabeça assim como eu estava a uns dias atrás para usar essas classes do django que facilitam muito o desenvolvimento. Eu ainda estou de boca aberta com o que o Django é capaz de fazer e hoje me pergunto “porque estou desenvolvendo em Delphi, ASP.NET e C# e ainda uso Windows?” pois bem isso é meu ganha pão e infelizmente não posso parar, mas se hoje me dessem uma oportunidade para trabalhar com Python e Django eu iria correndo!</p>
<p>Bom acho que esse tutorial merece ser explicado desde o inicio, desde a criação do projeto até os finalmente então vamos lá! Lembrando que é recomendado que se tenha a ultima versão do django do svn, para saber como instalar o django via svn consulte o site oficial ou o site da comunidade djangobrasil.org, os links são:<br />
<a href="http://www.djangoproject.com/documentation/install/">http://www.djangoproject.com/documentation/install/</a><br />
<a href="http://www.djangoproject.com/download/">http://www.djangoproject.com/download/</a></p>
<p>Tambem recomendo a leitura dos ótimos tutoriais feitos pelo nosso amigo Leandro no qual ele explica como instalar o Python e Django:<br />
<a href="http://www.leandro.inf.br/2007/11/29/instalando-o-django/">http://www.leandro.inf.br/2007/11/29/instalando-o-django/</a><br />
<a href="http://www.leandro.inf.br/2007/11/28/instalando-o-python/">http://www.leandro.inf.br/2007/11/28/instalando-o-python/</a><br />
<a href="http://www.leandro.inf.br/2007/11/29/videos-do-artigo-instalando-o-django/">http://www.leandro.inf.br/2007/11/29/videos-do-artigo-instalando-o-django/</a></p>
<p>Criando o projeto, no console digite:<br />
	<span style="color:#007020;font-weight:bold;">django-admin.py startproject tutorial</span><br />
Teremos nosso projeto criado com o seguinte conteudo:<br />
	<span style="color:#007020;font-weight:bold;">__init__.py  manage.py  settings.py  urls.py</span><br />
Bom com o nosso projeto criado vamos iniciar as configurações dos arquivos que o django-admin criou para nós na criação do projeto.<br />
Vamos começar editando o arquivo settings.py, abra ele em seu editor preferido, eu estou usando o Eclipse com o PyDev, a instalação do pydev pode vir a se tornar mais um tutorial mais alem.<br />
Eu vou mostrar aqui apenas os trechos em que vamo mecher para não ficar muito extenço:<br />
<span style="color:#007020;font-weight:bold;">DATABASE_ENGINE = &#8221;           # &#8216;postgresql_psycopg2&#8242;, &#8216;postgresql&#8217;, &#8216;mysql&#8217;, &#8217;sqlite3&#8242; or &#8216;oracle&#8217;.<br />
DATABASE_NAME = &#8221;             # Or path to database file if using sqlite3.</span></p>
<p>Em DATABASE_ENGINE vamos colocar sqlite3 deixando a linha assim <span style="color:#007020;font-weight:bold;">DATABASE_ENGINE = &#8217;sqlite3&#8242;</span></p>
<p>Em DATABASE_NAME vamos colocar o caminho para o nosso banco de dados que no meu caso vai ficar assim <span style="color:#007020;font-weight:bold;">DATABASE_NAME = &#8216;/home/raphal/Programacao/django/tutorial/dados.db&#8217;</span></p>
<p>Agora em <span style="color:#007020;font-weight:bold;">TIME_ZONE = &#8216;America/Chicago&#8217;</span> vamos alterar para <span style="color:#007020;font-weight:bold;">&#8216;America/Sao Paulo&#8217;</span></p>
<p>Em <span style="color:#007020;font-weight:bold;">LANGUAGE_CODE = &#8216;en-us&#8217;</span> vamos alterar para <span style="color:#007020;font-weight:bold;">&#8216;pt-br&#8217;</span></p>
<p>Em <span style="color:#007020;font-weight:bold;">TEMPLATE_DIRS</span> vamos adicionar o caminho para a nossa pasta que deve ser criada dentro da pasta do projeto, eu criei uma pasta chamada templates aonde vai ficar as nossas paginas html, no meu caso eu adicionei o caminho assim:<br />
<span style="color:#007020;font-weight:bold;">&#8216;/home/raphal/Programacao/django/tutorial/templates&#8217;</span></p>
<p>Em <span style="color:#007020;font-weight:bold;">INSTALLED_APPS</span> vamos adicionar duas linhas, uma é para termos acesso ao site de administração do Django no qual poderemos ver, incluir e alterar os dados da nossa base de dados e a segunda linha é para indicarmos para o nosso projeto aonde esta a nossa aplicação que vamos criar daqui a pouco:<br />
<span style="color:#007020;font-weight:bold;">&#8216;django.contrib.admin&#8217;,<br />
&#8216;tutorial.contatos&#8217;,</span></p>
<p>Dentro da nossa pasta do projeto no console vamos digitar o seguinte comando:<br />
	<span style="color:#007020;font-weight:bold;">python manage.py startapp contatos</span></p>
<p>Esse comando vai criar uma pasta dentro do nosso projeto chamado “contatos” na qual vai estar os seguintes arquivos:<br />
	<span style="color:#007020;font-weight:bold;">__init__.py  models.py  views.py</span></p>
<p>Ainda dentro da pasta do projeto digite:<br />
	 <span style="color:#007020;font-weight:bold;">python manage.py syncdb </span></p>
<p>Esse comando vai nos retornar o seguinte resultado:<br />
<span style="color:#007020;font-weight:bold;">Creating table auth_message<br />
Creating table auth_group<br />
Creating table auth_user<br />
Creating table auth_permission<br />
Creating table django_content_type<br />
Creating table django_session<br />
Creating table django_site<br />
Creating table django_admin_log</p>
<p>You just installed Django&#8217;s auth system, which means you don&#8217;t have any superusers defined.<br />
Would you like to create one now? (yes/no): yes</span></p>
<p>Diga yes para a pergunta do Django, ele vai criar uma conta de super usuario para que você tenha acesso ao site do admin, as seguintes linhas vao aparecer depois do yes:<br />
<span style="color:#007020;font-weight:bold;">Username (Leave blank to use &#8216;raphal&#8217;):<br />
E-mail address: raphal@raphal<br />
Password:<br />
Password (again):<br />
Superuser created successfully.<br />
Installing index for auth.Message model<br />
Installing index for auth.Permission model<br />
Installing index for admin.LogEntry model</span></p>
<p>Agora vamos criar o nosso model para os contatos, dentro da pasta contatos abra o arquivo models.py e crie a seguinte classe que contera os campos do model ou tabela na qual os dados serao armazenados:</p>
<div class="highlight">
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;"><span style="color:#007020;font-weight:bold;">class</span> <span style="color:#0e84b5;font-weight:bold;">Contatos</span>(models<span style="color:#666666;">.</span>Model):
    nome <span style="color:#666666;">=</span> models<span style="color:#666666;">.</span><span style="color:#007020;">CharField</span>(max_length<span style="color:#666666;">=</span><span style="color:#40a070;">50</span>)
    endereco <span style="color:#666666;">=</span> models<span style="color:#666666;">.</span><span style="color:#007020;">CharField</span>(max_length<span style="color:#666666;">=</span><span style="color:#40a070;">90</span>)
    email <span style="color:#666666;">=</span> models<span style="color:#666666;">.</span><span style="color:#007020;">CharField</span>(max_length<span style="color:#666666;">=</span><span style="color:#40a070;">60</span>)
    telefone <span style="color:#666666;">=</span> models<span style="color:#666666;">.</span><span style="color:#007020;">CharField</span>(max_length<span style="color:#666666;">=</span><span style="color:#40a070;">20</span>)
    celular <span style="color:#666666;">=</span> models<span style="color:#666666;">.</span><span style="color:#007020;">CharField</span>(max_length<span style="color:#666666;">=</span><span style="color:#40a070;">20</span>)
    <span style="color:#007020;font-weight:bold;">class</span> <span style="color:#0e84b5;font-weight:bold;">Admin</span>:
        <span style="color:#007020;font-weight:bold;">pass</span></pre>
</div>
<p>Com isso uma tabela nova sera criada lá naquele arquivos que creiamos lembra? O dados.db e que quando usamos o syncdb ele foi gerado com as tabelas do admin, pois bem lah vai estar a nossa classe Contatos e os dados que vamos inserir nela tambem.<br />
Rode o comando:<br />
	<span style="color:#007020;font-weight:bold;">python manage.py syncdb</span></p>
<p>Isso vai criar a tabela lá no dados.db<br />
Agora vamos para o arquivo views.py da aplicação “contatos”, abra ele e vamos adicionar as declarações que vamos utilizar, elas são as seguintes:</p>
<div class="highlight">
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;"><span style="color:#007020;font-weight:bold;">from</span> <span style="color:#0e84b5;font-weight:bold;">django.shortcuts</span> <span style="color:#007020;font-weight:bold;">import</span> render_to_response, get_object_or_404
<span style="color:#007020;font-weight:bold;">from</span> <span style="color:#0e84b5;font-weight:bold;">django.http</span> <span style="color:#007020;font-weight:bold;">import</span> HttpResponseRedirect, HttpResponse
<span style="color:#007020;font-weight:bold;">from</span> <span style="color:#0e84b5;font-weight:bold;">django.newforms</span> <span style="color:#007020;font-weight:bold;">import</span> ModelForm
<span style="color:#007020;font-weight:bold;">from</span> <span style="color:#0e84b5;font-weight:bold;">django.core.urlresolvers</span> <span style="color:#007020;font-weight:bold;">import</span> reverse
<span style="color:#007020;font-weight:bold;">from</span> <span style="color:#0e84b5;font-weight:bold;">tutorial.contatos.models</span> <span style="color:#007020;font-weight:bold;">import</span> Contatos</pre>
</div>
<p>Ainda no views.py vamos criar nossa classe que vai ser chamada por uma função na qual ira criar o form e vai nos redirecionar para uma pagina html que ira receber esse form criado pelo modelo gerado lá no arquivo models.py</p>
<div class="highlight">
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;"><span style="color:#007020;font-weight:bold;">class</span> <span style="color:#0e84b5;font-weight:bold;">ContatosModelForm</span>(ModelForm):
    <span style="color:#007020;font-weight:bold;">class</span> <span style="color:#0e84b5;font-weight:bold;">Meta</span>:
        model <span style="color:#666666;">=</span> Contatos</pre>
</div>
<p>Essa é a nossa classe que recebe o model criado no models.py, se ela não recebe-se o model teriamos que declarar os campos um a um como fizemos lá no models.py, basicamente é a mesma coisa que fizemos no tutorial passado, aonde eu mostrei a mesma coisa só que ao invez de receber um model na classe eu fiz a classe com os campos.</p>
<p>No views.py vamos criar a função que vai chamar a classe ContatosModelForm e vai gerar o html com os campos do model:</p>
<div class="highlight">
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;"><span style="color:#007020;font-weight:bold;">def</span> <span style="color:#06287e;">contatos</span>(request):
    f <span style="color:#666666;">=</span> ContatosModelForm()
    <span style="color:#007020;font-weight:bold;">return</span> render_to_response(<span style="color:#4070a0;">&#39;contatos.html&#39;</span>,{<span style="color:#4070a0;">&#39;form&#39;</span>:f<span style="color:#666666;">.</span>as_table()})</pre>
</div>
<p>Criando a pagina html para que o form seja criado, o nome do arquivo deve ser contatos.html e deve ficar na pasta templates criada quando estavamos configurando o nosso projeto:</p>
<div class="highlight">
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;"><span style="color:#062873;font-weight:bold;">&lt;html&gt;</span>
  <span style="color:#062873;font-weight:bold;">&lt;head&gt;</span>
    <span style="color:#062873;font-weight:bold;">&lt;title&gt;</span>Newforms Django<span style="color:#062873;font-weight:bold;">&lt;/title&gt;</span>
  <span style="color:#062873;font-weight:bold;">&lt;/head&gt;</span>
<span style="color:#062873;font-weight:bold;">&lt;body&gt;</span>
  <span style="color:#062873;font-weight:bold;">&lt;form</span> <span style="color:#4070a0;">action=&quot;/salvar_contato/&quot;</span> <span style="color:#4070a0;">method=&quot;POST&quot;</span><span style="color:#062873;font-weight:bold;">&gt;</span>
	  <span style="color:#062873;font-weight:bold;">&lt;table&gt;</span>
	    <span style="color:#007020;">{{</span><span style="color:#bb60d5;">form</span><span style="color:#007020;">}}</span>
	  <span style="color:#062873;font-weight:bold;">&lt;/table&gt;</span>
	  <span style="color:#062873;font-weight:bold;">&lt;input</span> <span style="color:#4070a0;">type=&quot;submit&quot;</span> <span style="color:#4070a0;">value=&quot;Adicionar&quot;</span> <span style="color:#062873;font-weight:bold;">/&gt;</span>
  <span style="color:#062873;font-weight:bold;">&lt;/form&gt;</span>
<span style="color:#062873;font-weight:bold;">&lt;/body&gt;</span>
<span style="color:#062873;font-weight:bold;">&lt;/html&gt;</span>
</pre>
</div>
<p>Essa é nossa pagina html, ali entre as tags <code>&lt;table&gt;</code> temos a variavel que vai receber o objeto form e é ali que o código html para o form sera gerado, ele esta entre as tags <code>&lt;table&gt;</code> porque vamos gerar o form com formatação em tabela. O que nos diz que o form vai ser gerado em formato de tabela é a opção do objeto “f” as_table() essa opção nos diz que o código html vai ser gerado em tabela.<br />
Vocês podem ver tambem que estamos usando uma tag <code>&lt;form&gt;</code> com uma action=”/salvar_contato/” e o metodo dela é POST, a gente já vai chegar nessa parte, antes vamos criar o metodo utilizado para salvar os dados do formulário.</p>
<p>OK você quer ver o formulario aparecendo no browser não é? tá curioso! entao tá vamos configurar o nosso urls.py da seguinte forma:</p>
<div class="highlight">
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">(<span style="color:#4070a0;">r&#39;^admin/&#39;</span>, include(<span style="color:#4070a0;">&#39;django.contrib.admin.urls&#39;</span>)),
      (<span style="color:#4070a0;">r&#39;^contatos/$&#39;</span>, <span style="color:#4070a0;">&#39;tutorial.contatos.views.contatos&#39;</span>),</pre>
</div>
<p>A primeira linha vai estar comentada, descomente ela para termos acesso a area de administração do nosso projeto e adicione a segunda linha, essa linha vai ser o nosso link para a função contatos do nosso views na qual vai chamar o contatos.html e vai gerar o form.<br />
Agora você já pode rodar o server usando o comando na pasta raiz do projeto:<br />
	<span style="color:#007020;font-weight:bold;">python manage.py runserver</span></p>
<p>Esse comando vai subir o servidor interno do django usado somente para testes e debug, não é aconselhavel usar para outros fins, o endereço do servidor esta em http://127.0.0.1:8000/ acesse esse link em seu brownser caso o servidor tenha subido sem nenhum problema. Ops! Se você acessar esse endereço vai te retornar um erro 404, porque? Porque não criamos um index, não temos um site padrão para o endereço raiz “/”, na pagina do erro ele te mostra as opções de sites que temos em nosso urls.py entao acesse http://127.0.0.1:8000/contatos e pronto ai esta o nosso formulario, que coisa boa não? eu to impressionado até agora com isso, um form prontinho para ser usado, isso é django!</p>
<p>Agora sim vamos para a nossa função que vai salvar os dados do formulario:</p>
<div class="highlight">
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;"><span style="color:#007020;font-weight:bold;">def</span> <span style="color:#06287e;">salvar_contato</span>(request):
    <span style="color:#007020;font-weight:bold;">if</span> request<span style="color:#666666;">.</span>POST:
        f <span style="color:#666666;">=</span> ContatosModelForm(request<span style="color:#666666;">.</span>POST)
        <span style="color:#007020;font-weight:bold;">if</span> f<span style="color:#666666;">.</span>is_valid():
            c = f<span style="color:#666666;">.</span>save()
            <span style="color:#007020;font-weight:bold;">return</span> HttpResponseRedirect(reverse(<span style="color:#4070a0;">&#39;tutorial.contatos.views.contatos_resultado&#39;</span>, args<span style="color:#666666;">=</span>[c<span style="color:#666666;">.</span>id]))
        <span style="color:#007020;font-weight:bold;">else</span>:
            <span style="color:#007020;font-weight:bold;">return</span> HttpResponse(f<span style="color:#666666;">.</span>errors)</pre>
</div>
<p>Essa função vai ser chamada no click do botao do nosso form que vai mandar um sinal POST e entao vamos salvar tudo o que foi digitado nos campos em um registro novo na nossa tabela contatos, mas claro que ele só vai salvar depois de ter certeza que esta tudo correto usando a opção “is_valid()”<br />
Bom não adianta ir querendo testar agora pois ainda falta mais uma função pra ser criada que é a contatos_resultado pois quando formos gravar vamos querer ver os resultados ou em fim ir para algum outro lugar e não ficar na mesma tela do formulario.<br />
Nossa função que ira nos mostrar os resultados do click no botao “Adicionar” é o seguinte:</p>
<div class="highlight">
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;"><span style="color:#007020;font-weight:bold;">def</span> <span style="color:#06287e;">contatos_resultado</span>(request, codigo):
    c <span style="color:#666666;">=</span> get_object_or_404(Contatos, pk<span style="color:#666666;">=</span>codigo)
    <span style="color:#007020;font-weight:bold;">return</span> render_to_response(<span style="color:#4070a0;">&#39;contatos_lista.html&#39;</span>, {<span style="color:#4070a0;">&#39;contato&#39;</span>: c})</pre>
</div>
<p>Vamos criar o arquivo contatos_lista.html:</p>
<div class="highlight">
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;"><span style="color:#062873;font-weight:bold;">&lt;html&gt;</span>
  <span style="color:#062873;font-weight:bold;">&lt;head&gt;</span>
    <span style="color:#062873;font-weight:bold;">&lt;title&gt;</span>Newforms Django<span style="color:#062873;font-weight:bold;">&lt;/title&gt;</span>
  <span style="color:#062873;font-weight:bold;">&lt;/head&gt;</span>
<span style="color:#062873;font-weight:bold;">&lt;body&gt;</span>
   <span style="color:#007020;">{{</span><span style="color:#bb60d5;">contato.nome</span><span style="color:#007020;">}}</span><span style="color:#062873;font-weight:bold;">&lt;br</span> <span style="color:#062873;font-weight:bold;">/&gt;</span>
   <span style="color:#007020;">{{</span><span style="color:#bb60d5;">contato.endereco</span><span style="color:#007020;">}}</span><span style="color:#062873;font-weight:bold;">&lt;br</span> <span style="color:#062873;font-weight:bold;">/&gt;</span>
   <span style="color:#007020;">{{</span><span style="color:#bb60d5;">contato.email</span><span style="color:#007020;">}}</span><span style="color:#062873;font-weight:bold;">&lt;br</span> <span style="color:#062873;font-weight:bold;">/&gt;</span>
   <span style="color:#007020;">{{</span><span style="color:#bb60d5;">contato.telefone</span><span style="color:#007020;">}}</span><span style="color:#062873;font-weight:bold;">&lt;br</span> <span style="color:#062873;font-weight:bold;">/&gt;</span>
   <span style="color:#007020;">{{</span><span style="color:#bb60d5;">contato.celular</span><span style="color:#007020;">}}</span>
<span style="color:#062873;font-weight:bold;">&lt;/body&gt;</span>
<span style="color:#062873;font-weight:bold;">&lt;/html&gt;</span>
</pre>
</div>
<p>Vamos adicionar nossas url lá no urls.py:</p>
<div class="highlight">
<pre style="font-size:medium;background:#E0FFB8;border:1px solid #94da3a;overflow:auto;border-width:1px 0;margin:1em 0;padding:.3em .4em;">(<span style="color:#4070a0;">r&#39;^salvar_contato/$&#39;</span>, <span style="color:#4070a0;">&#39;tutorial.contatos.views.salvar_contato&#39;</span>),
(<span style="color:#4070a0;">r&#39;^contatos_resultado/(?P&lt;codigo&gt;\d+)/$&#39;</span>, <span style="color:#4070a0;">&#39;tutorial.contatos.views.contatos_resultado&#39;</span>),
</pre>
</div>
<p>É um exemplo bem simples, claro que vocês podem fazer algo melhor, isso foi feito só para vocês saberem que o registro foi gravado e vocês foram redirecionados para outra pagina. Após termos adicionado as urls já podemos testar a gravação de dados e a exibição deles, persebam que na ultima url adicionada eu passo o parametro  para a url, entao se vocês por exemplo quiserem ver qualquer registro em contatos é só especificar um código no final da url no browser e os dados vão ser listados pois estamos chamando a função contatos_resultado e passando o parametro código para ele.</p>
<p>Bom por enquanto é isso, não vou continuar tudo nesse tutorial pois ainda tenho que estudar mais algumas coisas pois assim como vocês tambem estou aprendendo, nos proximos tutoriais vamos fazer uma visualização mais descente, alteração de dados e consultas, mas como ainda não sei bem como vou fazer tudo isso por enquanto ficamos por aqui mesmo, quando eu tiver mais resultados eu continuo o tutorial. Aceito ideias, sujestoes e criticas, oque vier é lucro <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Abraços!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rafacdb.wordpress.com/35/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rafacdb.wordpress.com/35/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rafacdb.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rafacdb.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rafacdb.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rafacdb.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rafacdb.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rafacdb.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rafacdb.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rafacdb.wordpress.com/35/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rafacdb.wordpress.com/35/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rafacdb.wordpress.com/35/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rafacdb.wordpress.com&blog=1328312&post=35&subd=rafacdb&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rafacdb.wordpress.com/2007/12/10/usando-newforms-com-modelform/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76a2ec9ca8fde7a2b6e2c4aa23c2153f?s=96&#38;d=identicon" medium="image">
			<media:title type="html">rafacdb</media:title>
		</media:content>
	</item>
		<item>
		<title>Problema na atualização do bash</title>
		<link>http://rafacdb.wordpress.com/2007/12/09/problema-na-atualizacao-do-bash/</link>
		<comments>http://rafacdb.wordpress.com/2007/12/09/problema-na-atualizacao-do-bash/#comments</comments>
		<pubDate>Sun, 09 Dec 2007 10:45:50 +0000</pubDate>
		<dc:creator>Rafael Campos de Bastiani</dc:creator>
				<category><![CDATA[Archlinux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[core]]></category>

		<guid isPermaLink="false">http://rafacdb.wordpress.com/2007/12/09/problema-na-atualizacao-do-bash/</guid>
		<description><![CDATA[Semana passada enfrentei um problema na atualização do meu archlinux, o pacman não conseguia atualizar o bash, bom hoje achei a solução que é muito simples, no console digite pacman -Sf bash e pronto, resolvido, muito simples, agora atualize o restante do sistema normalmente pois o bash já foi atualizado.
Link da noticia: http://archlinux.org/news/369/
   [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rafacdb.wordpress.com&blog=1328312&post=32&subd=rafacdb&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Semana passada enfrentei um problema na atualização do meu archlinux, o pacman não conseguia atualizar o bash, bom hoje achei a solução que é muito simples, no console digite pacman -Sf bash e pronto, resolvido, muito simples, agora atualize o restante do sistema normalmente pois o bash já foi atualizado.<br />
Link da noticia: <a href="http://archlinux.org/news/369/">http://archlinux.org/news/369/</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/rafacdb.wordpress.com/32/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/rafacdb.wordpress.com/32/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/rafacdb.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/rafacdb.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/rafacdb.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/rafacdb.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/rafacdb.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/rafacdb.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/rafacdb.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/rafacdb.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/rafacdb.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/rafacdb.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=rafacdb.wordpress.com&blog=1328312&post=32&subd=rafacdb&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://rafacdb.wordpress.com/2007/12/09/problema-na-atualizacao-do-bash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/76a2ec9ca8fde7a2b6e2c4aa23c2153f?s=96&#38;d=identicon" medium="image">
			<media:title type="html">rafacdb</media:title>
		</media:content>
	</item>
	</channel>
</rss>