Slide 1

Slide 1 text

Tutorial Django Introduc ¸ ˜ ao simples e completa R´ egis da Silva about.me/rg3915 github.com/grupy-sp/encontros 27 de Janeiro de 2016 1 / 36

Slide 2

Slide 2 text

Script $ wget --output-document=setup.sh link $ source setup.sh myproject 2 / 36

Slide 3

Slide 3 text

Objetivo Criar a view mais simples do mundo Criar um cadastro de pessoas Editar os dados pelo Admin 3 / 36

Slide 4

Slide 4 text

O que ´ e Django? Segundo Django Brasil, Django ´ e um framework web de alto n´ ıvel escrito em Python que estimula o desenvolvimento r´ apido e limpo. 4 / 36

Slide 5

Slide 5 text

O que ´ e Django? 5 / 36

Slide 6

Slide 6 text

O que ´ e Django? adota o padr˜ ao MTV 5 / 36

Slide 7

Slide 7 text

O que ´ e Django? adota o padr˜ ao MTV possui ORM 5 / 36

Slide 8

Slide 8 text

O que ´ e Django? adota o padr˜ ao MTV possui ORM admin 5 / 36

Slide 9

Slide 9 text

O que ´ e Django? adota o padr˜ ao MTV possui ORM admin heranc ¸a de templates e modelos 5 / 36

Slide 10

Slide 10 text

O que ´ e Django? adota o padr˜ ao MTV possui ORM admin heranc ¸a de templates e modelos open source 5 / 36

Slide 11

Slide 11 text

Vers˜ ao atual (Jan/16) Django==1.9.1 6 / 36

Slide 12

Slide 12 text

Sites 1. www.djangoproject.com/ 2. www.djangopackages.com/ 3. http://tutorial.djangogirls.org/pt/index.html 4. www.groups.google.com/forum/django-brasil 5. www.pythonclub.com.br/ 6. www.realpython.com/blog/categories/django/ 7 / 36

Slide 13

Slide 13 text

Instalac ¸ ˜ ao $ virtualenv -p python3 .venv $ source .venv/bin/activate $ pip install django 8 / 36

Slide 14

Slide 14 text

Criando o Projeto $ django-admin.py startproject myproject . 9 / 36

Slide 15

Slide 15 text

Criando a App $ python manage.py startapp core 10 / 36

Slide 16

Slide 16 text

. manage.py myproject init .py settings.py urls.py wsgi.py core admin.py init .py models.py tests.py views.py 11 / 36

Slide 17

Slide 17 text

Admin Views Urls Models Forms Templates index.html Tests Settings 12 / 36

Slide 18

Slide 18 text

Django funcionando em n´ ıvel 0 Criando a primeira migrac ¸ ˜ ao $ python manage.py migrate 13 / 36

Slide 19

Slide 19 text

Django funcionando em n´ ıvel 0 Criando a primeira migrac ¸ ˜ ao $ python manage.py migrate Rodando o projeto $ python manage.py runserver Por padr˜ ao ele est´ a rodando na porta 8000 http://localhost:8000/ ou http://127.0.0.1:8000/ 13 / 36

Slide 20

Slide 20 text

Django funcionando em n´ ıvel 0 Criando a primeira migrac ¸ ˜ ao $ python manage.py migrate Rodando o projeto $ python manage.py runserver Por padr˜ ao ele est´ a rodando na porta 8000 http://localhost:8000/ ou http://127.0.0.1:8000/ ou $ python manage.py runserver $ python manage.py runserver 8080 http://localhost:8080/ 13 / 36

Slide 21

Slide 21 text

14 / 36

Slide 22

Slide 22 text

O m´ ınimo - n´ ıvel 1: settings, views, urls . myproject ... settings.py urls.py core ... views.py 15 / 36

Slide 23

Slide 23 text

Editando settings.py 1 INSTALLED_APPS = ( 2 ... 3 ’myproject.core’, 4 ) 16 / 36

Slide 24

Slide 24 text

A view mais simples do mundo 1 # from django.shortcuts import render 2 from django.http import HttpResponse 3 4 def home(request): 5 return HttpResponse(’

Django

6

Bem vindo ao Grupy-SP

’) 17 / 36

Slide 25

Slide 25 text

Editando urls.py 1 from django.conf.urls import url 2 import myproject.core.views as v 3 4 urlpatterns = [ 5 url(r’ˆ$’, v.home), 6 ] 18 / 36

Slide 26

Slide 26 text

19 / 36

Slide 27

Slide 27 text

Tocando o barco Editando settings.py 1 LANGUAGE_CODE = ’pt-br’ 2 3 TIME_ZONE = ’America/Sao_Paulo’ 20 / 36

Slide 28

Slide 28 text

Editando views.py 1 from django.shortcuts import render 2 # from django.http import HttpResponse 3 4 # def home(request): 5 # return HttpResponse(’

Django

Bem vindo ao Grupy- 6 7 def index(request): 8 return render(request, ’index.html’) 21 / 36

Slide 29

Slide 29 text

Editando urls.py 1 from django.conf.urls import url 2 import myproject.core.views as v 3 from django.contrib import admin 4 5 urlpatterns = [ 6 url(r’ˆ$’, v.home), 7 url(r’ˆindex/$’, v.index), 8 url(r’ˆadmin/’, admin.site.urls), 9 ] 22 / 36

Slide 30

Slide 30 text

A pasta templates myproject ... settings.py urls.py core ... views.py templates index.html 23 / 36

Slide 31

Slide 31 text

24 / 36

Slide 32

Slide 32 text

Editando models.py 1 from django.db import models 2 3 class Person(models.Model): 4 first_name = models.CharField(’nome’, max_length=50) 5 last_name = models.CharField(’sobrenome’, max_length=50) 6 phone = models.CharField(’telefone’, max_length=20, blank=Tru 7 email = models.EmailField(’e-mail’, blank=True) 8 blocked = models.BooleanField(’bloqueado’, default=False) 9 created = models.DateTimeField(’criado em’, auto_now_add=True 10 11 class Meta: 12 ordering = [’first_name’] 13 verbose_name = ’pessoa’ 14 verbose_name_plural = ’pessoas’ 15 16 def __str__(self): 17 return ’ ’.join(self.first_name, self.last_name) 25 / 36

Slide 33

Slide 33 text

Tipos de campos https://docs.djangoproject.com/en/1.9/ref/models/fields/ 26 / 36

Slide 34

Slide 34 text

Editando o admins.py 1 from django.contrib import admin 2 from myproject.core.models import Person 3 4 admin.site.register(Person) 27 / 36

Slide 35

Slide 35 text

Editando o admins.py 1 from django.contrib import admin 2 from myproject.core.models import Person 3 4 class PersonModelAdmin(admin.ModelAdmin): 5 list_display = (’__str__’, ’phone’, ’email’, 6 ’blocked’, ’created’) 7 search_fields = (’first_name’, ’last_name’, ’phone’, ’email’) 8 list_filter = (’blocked’,) 9 10 admin.site.register(Person, PersonModelAdmin) 28 / 36

Slide 36

Slide 36 text

Atualizando o banco $ python manage.py makemigrations $ python manage.py migrate 29 / 36

Slide 37

Slide 37 text

Criando um super usu´ ario $ python manage.py createsuperuser --username=’admin’ --email=’’ 30 / 36

Slide 38

Slide 38 text

31 / 36

Slide 39

Slide 39 text

32 / 36

Slide 40

Slide 40 text

33 / 36

Slide 41

Slide 41 text

34 / 36

Slide 42

Slide 42 text

Obrigado! D´ uvidas? 35 / 36

Slide 43

Slide 43 text

Tutorial Django Introduc ¸ ˜ ao simples e completa R´ egis da Silva about.me/rg3915 github.com/grupy-sp/encontros 27 de Janeiro de 2016 36 / 36