Microtutoriais: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
mSem resumo de edição
 
(36 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
=Django1: Baixar e rodar em 3 comandos=
= Parte A: os 12 Microtutoriais baseados no tutorial oficial do django =


Simplesme baixe o tar.gz do site e rode
Foram batizados de [[Microtutoriais A]] e estão no link.
    $ 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.=
= Parte B: os 5 tutoriais para de fato fazer o que é necessário =


    $ python manage.py syncdb
Foram batizados de [[Microtutoriais B]] e estão no link.  
dá pau até que vc arrume o


    DATABASES = { 'default' :
[[Category:Lab_Macambira]]
 
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:
 
<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.
 
=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:
 
<pre>from XXXX.models import Poll
from XXXX.models import Choice
from django.contrib import admin
 
admin.site.register(Poll)  <----------------
admin.site.register(Choice)  <----------------</pre>
 
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:
 
<pre>admin.site.register(Poll)  <----------------
admin.site.register(Choice)  <----------------</pre>
 
por:
 
</pre>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</pre>
 
E veja o resultado.
 
 
 
=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
 
[[Category:Lab Macambira]]

Edição atual tal como às 13h51min de 18 de setembro de 2011

Parte A: os 12 Microtutoriais baseados no tutorial oficial do django

Foram batizados de Microtutoriais A e estão no link.

Parte B: os 5 tutoriais para de fato fazer o que é necessário

Foram batizados de Microtutoriais B e estão no link.