Microtutoriais: mudanças entre as edições
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. | ||
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.