|
|
(37 revisões intermediárias por 2 usuários 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
| |