Microtutoriais: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
mSem resumo de edição
mSem resumo de edição
Linha 25: Linha 25:
Até que não sintamos nada de mais pegando.
Até que não sintamos nada de mais pegando.


====Django3: Suas tabelas de BD são classes====
Crie um app:
    $ python manage.py startapp sitezinhoCoxa
Coloque 'sitezinhoCoxa' no final da tupla INSTALLED_APPS do settings.py,
Crie estas duas classes no seu sitezinhoCoxa/models.py:
<pre>class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()</pre>
Relaxa, vai dar certo. Só falta rodar este comando:
<pre>$ python manage.py sql aexp
CREATE TABLE `aexp_poll` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `question` varchar(200) NOT NULL,
    `pub_date` datetime NOT NULL
)
;
CREATE TABLE `aexp_choice` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `poll_id` integer NOT NULL,
    `choice` varchar(200) NOT NULL,
    `votes` integer NOT NULL
)
;</pre>
Pronto! só dê um:
    $ python manage.py syncdb
para seu projeto dar conta de usar a base de dados que vc fez.
====Django4: Interlúdio na shell====
(fim da parte 1 do tutorial oficial)
Para inicar uma shell com o ambiente bonitinho para
fazer alterações na mão e colocar coisas nos BD:
    $ python manage.py shell
Aí pode fazer coisas como:
<pre>[1]: from aexp.models import Poll, Choice
[2]: p = Poll(question="What's up?", pub_date=datetime.datetime.now())
[3]: p.save()
[4]: p.choice_set.create(choice='Not much', votes=0)</pre>
etc...
====Django5: Habilite seu Admin====
(inicio da parte 2 do tutorial)
Depois de descomentar 'django.contrib.admin' do INSTALLED_APPS do settings.py
    $ python manage.py syncdb # porque estamos com um app novo, o admin
Aí é preciso habilitar a URL para acessar o admin, isso é feito no url.py descomentando
as seguintes três linhas:
<pre>from django.contrib import admin
admin.autodiscover()
(r'^admin/', include(admin.site.urls)),</pre>
A última fica ao final do bloco identado.
Pronto. Inicie o server
    $ python manage.py runserver
e vá para o endereço previsto, provavelmente:
    http://127.0.0.1:8000/admin/
Vualá seu admin tá rodando. Faz login aí, irmão.




Linha 93: Linha 178:


E veja o resultado.
E veja o resultado.
________________________________
'''Django5''': Habilite seu Admin
(inicio da parte 2 do tutorial)
Depois de descomentar 'django.contrib.admin' do INSTALLED_APPS do settings.py
$ python manage.py syncdb # porque estamos com um app novo, o admin
Aí é preciso habilitar a URL para acessar o admin, isso é feito no url.py descomentando
as seguintes três linhas:
from django.contrib import admin
admin.autodiscover()
(r'^admin/', include(admin.site.urls)),
A última fica ao final do bloco identado.
Pronto. Inicie o server
$ python manage.py runserver
e vá para o endereço previsto:
http://127.0.0.1:8000/admin/
Vualá seu admin tá rodando. Faz login aí, irmão.
__________________________
'''Django4''': Interlúdio na shell
(fim da parte 1 do tutorial oficial)
Para inicar uma shell com o ambiente bonitinho para
fazer alterações na mão e colocar coisas nos BD:
$ python manage.py shell
Aí pode fazer coisas como:
[1]: from aexp.models import Poll, Choice
[2]: p = Poll(question="What's up?", pub_date=datetime.datetime.now())
[3]: p.save()
[4]: p.choice_set.create(choice='Not much', votes=0)
etc...
_________________________________
'''Django3''': Suas tabelas de BD são classes
Crie um app:
$ python manage.py startapp sitezinhoCoxa
Coloque 'sitezinhoCoxa' no final da tupla INSTALLED_APPS do settings.py,
Crie estas duas classes no seu sitezinhoCoxa/models.py:
class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()
Relaxa, vai dar certo. Só falta rodar este comando:
$ python manage.py sql aexp
CREATE TABLE `aexp_poll` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `question` varchar(200) NOT NULL,
    `pub_date` datetime NOT NULL
)
;
CREATE TABLE `aexp_choice` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `poll_id` integer NOT NULL,
    `choice` varchar(200) NOT NULL,
    `votes` integer NOT NULL
)
;
Pronto! só dê um:
$ python manage.py syncdb
para seu projeto dar conta de usar a base de dados que vc fez.
__________________________________

Edição das 10h30min de 18 de agosto de 2011

Django1: Baixar e rodar em 3 comandos

Simplesme baixe o tar.gz do site e rode

   $ sudo python setup.py install

depois vá para um dir.. dê um

   $ python django-admin.py startproject mysite

inicie o servidor (entra no diretório do projeto)

   $ python manage.py runserver

pronto! só ir no endereço que o terminal soltou

Django2: Fazendo o bixinho acessar um BD.

   $ python manage.py syncdb

dá pau até que vc arrume o

   DATABASES = { 'default' :

do settings.py

Pode usar sqlite que fica imediato, mas eu arrumei um user mysql rapidinho.

Rode:

   $ python manage.py syncdb

Até que não sintamos nada de mais pegando.


Django3: Suas tabelas de BD são classes

Crie um app:

   $ python manage.py startapp sitezinhoCoxa

Coloque 'sitezinhoCoxa' no final da tupla INSTALLED_APPS do settings.py,

Crie estas duas classes no seu sitezinhoCoxa/models.py:

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()

Relaxa, vai dar certo. Só falta rodar este comando:

$ python manage.py sql aexp

CREATE TABLE `aexp_poll` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `question` varchar(200) NOT NULL,
    `pub_date` datetime NOT NULL
)
;
CREATE TABLE `aexp_choice` (
    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,
    `poll_id` integer NOT NULL,
    `choice` varchar(200) NOT NULL,
    `votes` integer NOT NULL
)
;

Pronto! só dê um:

   $ python manage.py syncdb

para seu projeto dar conta de usar a base de dados que vc fez.


Django4: Interlúdio na shell

(fim da parte 1 do tutorial oficial)

Para inicar uma shell com o ambiente bonitinho para fazer alterações na mão e colocar coisas nos BD:

   $ python manage.py shell 

Aí pode fazer coisas como:

[1]: from aexp.models import Poll, Choice
[2]: p = Poll(question="What's up?", pub_date=datetime.datetime.now())
[3]: p.save()
[4]: p.choice_set.create(choice='Not much', votes=0)

etc...

Django5: Habilite seu Admin

(inicio da parte 2 do tutorial)

Depois de descomentar 'django.contrib.admin' do INSTALLED_APPS do settings.py

   $ python manage.py syncdb # porque estamos com um app novo, o admin

Aí é preciso habilitar a URL para acessar o admin, isso é feito no url.py descomentando as seguintes três linhas:

from django.contrib import admin
admin.autodiscover()
(r'^admin/', include(admin.site.urls)),

A última fica ao final do bloco identado.

Pronto. Inicie o server

   $ python manage.py runserver

e vá para o endereço previsto, provavelmente:

   http://127.0.0.1:8000/admin/

Vualá seu admin tá rodando. Faz login aí, irmão.


Django7: Seu Admin é customizável completamente

(último da parte 2 do tutorial)

no settings.py mude:

TEMPLATE_DIRS = (

   "/home/XXXX/mytemplates", # Change this to your own directory.

)

XXXX é o que você quer.

copie coisas como:

   django/contrib/admin/templates/admin/base_site.html

para

   /home/XXXXX/mytemplates/admin/base_site.html.

e não veja a mudança alguma AINDA. Ou tente fuçar no base_site.html


____________________________

Django6: Faça seu Admin responder

Depois de devidamente logado,

Crie um arquivo admin.py no diretório do app que startou com startapp. Coloque as seguintes linhas neste arquivo admin.py:

from XXXX.models import Poll
from XXXX.models import Choice
from django.contrib import admin

admin.site.register(Poll)  <----------------
admin.site.register(Choice)  <----------------

XXX você substitui por sitezinhoCoxa ou qualquer nome do app que você fez.

Recarregue a página e veja que o admin já possui uma entrada para o polls.


Troque:

admin.site.register(Poll)  <----------------
admin.site.register(Choice)  <----------------

por:

class ChoiceInline(admin.TabularInline):

   model = Choice
   extra = 3

class PollAdmin(admin.ModelAdmin):

   list_display = ('question', 'pub_date', 'was_published_today')
   fieldsets = [
       (None,               {'fields': ['question']}),
       ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}),
   ]
   inlines = [ChoiceInline]
   list_filter = ['pub_date']
   search_fields = ['question']
   date_hierarchy = 'pub_date'

admin.site.register(Poll, PollAdmin

E veja o resultado.