SlideShare uma empresa Scribd logo
Django Models
●   Estrutura da classe models.Model
●   Como funcionam os managers
●   Queryset e seus atributos
       ●   Como o django gera SQL?
       ●   Consultas compexas
●   Integração com o pacote admin
●   Básico do admin


                          Guilherme Kuhn
                                           1
models.Model
    ●   Atributos mais usados da class Meta:
           ●   db_table
           ●   managed
           ●   ordering
           ●   unique_together
           ●   verbose_name
           ●   verbose_name_plural 



                                   
models.Model
                      db_table
    ●   Nome da tabela que será usada.
           ●   db_table = 'PESSOA_FISICA'


    ●   Oracle com usuarios
           ●   db_table = 'sisacad”.”PESSOA_FISICA'




                                   
models.Model
                   managed
    ●   O atributo managed informa se o django deve ou 
         não criar a tabela quando executado o syncdb


    ●   Valores: True/False


    ●   Default: True




                                
models.Model
                       ordering
    ●   Determina a ordenação padrão do model.
    ●   Valores: Lista dos campos em sequencia.
    ●   Não é usado quando:
           ●   Orcamento.objects.order_by('valor')
           ●   Orcamento.objects.filter().order_by('valor')
    ●   É usado quando:
           ●   Orcamento.objects.filter()
           ●   Orcamento.objects.all()

                                      
models.Model
                 unique_together
    ●   Usado unicamente na geração do SQL para a 
         criação das tabelas.
    ●   Valores: Tupla unica, ou lista de tuplas
    ●   unique_together = ('campo', 'campo1', 'campo2')
    ●   unique_together = (
             ('campo1', 'campo2'),
             ('campo2', 'campo3'),
             )

                                      
models.Model
          verbose_name(_plural)
    ●   Se este atributo não for informado por padão o 
          django irá usar o nome da classe.


    ●   Usado no menu da interface de administração.




                                 
class Meta:




               
Model Fields
    ●   Atributos básicos


           ●   Null             ●   editable
           ●   Blank            ●   help_text
           ●   Choices          ●   primary_key
           ●   db_column        ●   Unique
           ●   db_index         ●   verbose_name
           ●   Default          ●   validators


                             
Model Fields
    ●   Null – Relação com o Banco de Dados
           ●   True/False ­  Default: False
    ●   Blank – Relação com o formulário – igual null.
    ●   Choices – Mesmo comportamento do Forms.
    ●   db_column – Informa o nome do campo na tabela.
    ●   db_index – Cria um idice para o campo.
           ●   True/False – Default: False
    ●   Default – informa um valor padrão para o campo
 
           ●   Pode ser um método     
Model Fields
    ●   Editable – Referencia ao Form. Se False, o campo 
         não aparece no formulário.
    ●   help_text – mesmo comportamento do Forms.
    ●   Primary_key – Indica se um campo é pk da tabela.
           ●   Não é suportado chave primaria composta
           ●   Apenas 1 campo deve ter primary_key = True.
    ●   Unique – Cria o campo na tabela como sendo de 
         valor unico.
    ●   Validators – lista com metodos para validar os 
 
         valores inseridos no campo.
                                 
Model Fields




                
Managers
    ●   Interface de comunicação entre o model e o banco 
          de dados.

    ●   Principais métodos:
           ●   .filter(*args, **kwargs)
           ●   .order_by(lista ou string)
           ●   .get(*args, **kwargs)
           ●   .all()


                                        
Managers
    ●   .filter(*args, **kwargs)
           ●   .filter(campo1='teste', campo2=1234)
           ●   .filter(**{'campo1': 'teste'})
           ●   pesquisa = {'campo2': 1234}
           ●   .filter(campo1='teste', **pesquisa)
    ●   Retorna sempre um objeto Queryset




                                       
Managers
    ●   .get(*args, **kwargs)
           ●   Aceita o mesmo tipo de parametro que o .filter
    ●   Retorna apenas 1 objeto sempre
    ●   Caso não seja encontrado nenhum objeto joga 
         exception model.DoesNotExist
    ●   Caso seja encontrado mais de 1 objeto, joga 
         exception model.MultipleObjectsReturned



                                     
Managers
    ●   .all() ­ Retorna um queryset com todos os objetos 
          cadastrados.


    ●   .order_by(order)
           ●   Retorna um queryset com os objetos ordenados 
                conforme a ordenação passada.




                                    
Queryset
    ●   Field Lookups
           ●   Complementos das consultas para cada campo.
           ●   exact, iexact, contains, icontains, in, gt, gte, lt, lte, 
                 startswith, istartswith, endswith, iendswith, range, 
                 isnull.




                                       
Queryset
    ●   A execução de um queryset é preguiçosa.
    ●   Podemos executar diversos filtros um sobre o outro, 
         para termos uma consulta complexa no final.




                                 
Queryset




            
Consultas complexas
    ●   Objeto Q (from django.db.models import Q)
    ●   Objetos Q podem ser passados para o manager ou 
         para um queryset.
    ●   Sintaxe: ( | OR) (& AND)




                               
Admin
    ●   from django.contrib import admin
    ●   Classe admin.ModelAdmin
           ●   list_display = ('campo', 'campo2', 'campo3',)
           ●   list_filters = ('campo3','campo4')
           ●   search_fields = ['campo','campo1']
    ●   Registrando Admin.
           ●   admin.site.register(ModelName, AdminName)



                                      
Admin




         
Contato


            Guilherme Kuhn
          <g.kuhn0@gmail.com>
            http://gkuhn.com




                    

Mais conteúdo relacionado

PDF
Jason: Componentes personalizados
ODP
Aula 01 -_pilhas_e_filas_com_vetores-oop
PDF
Agbd aula4 sql_ddl
PDF
Padrões de projeto em linguagens funcionais
PPT
Enfermagem avidadeumaenfermeiroa-090705080552-phpapp01
PDF
Tef - bema tef turbo - pagamentos com cartões no varejo - saiba o que mudou n...
PPS
Presentación de nuestro logotipo arce
PPS
La HipocresíA Del Pp 2
Jason: Componentes personalizados
Aula 01 -_pilhas_e_filas_com_vetores-oop
Agbd aula4 sql_ddl
Padrões de projeto em linguagens funcionais
Enfermagem avidadeumaenfermeiroa-090705080552-phpapp01
Tef - bema tef turbo - pagamentos com cartões no varejo - saiba o que mudou n...
Presentación de nuestro logotipo arce
La HipocresíA Del Pp 2

Destaque (10)

PPS
PPT
PPT
Marketing A3 e a4
PPTX
Universidad mifamiliaecci
PPTX
Marketing em redes e mídias sociais
PDF
GBarton-OpEd-HSun-Radicalisation-22Apr15
PPT
13 08-20 Regulamentação do Mercado de M-payment - P&K Advogados - Hélo Ferreira
PPT
El blog en la enseñanza de idiomas.
PDF
13 11-26 pesquisa mavam 2013 - acision e quanti - Silviane Rodrigues e Humber...
PPT
Insertar Y Suprimir Enlace
Marketing A3 e a4
Universidad mifamiliaecci
Marketing em redes e mídias sociais
GBarton-OpEd-HSun-Radicalisation-22Apr15
13 08-20 Regulamentação do Mercado de M-payment - P&K Advogados - Hélo Ferreira
El blog en la enseñanza de idiomas.
13 11-26 pesquisa mavam 2013 - acision e quanti - Silviane Rodrigues e Humber...
Insertar Y Suprimir Enlace
Anúncio

Semelhante a Apresentacao models (20)

PDF
Uma implementação de suporte a
PDF
Teste de Integração - Unidade III
PDF
Minicurso Node.js fullstack IFCE - 2015-11-28
PDF
XML Schema (2002)
PDF
Sql básico - Teoria e prática: Um grande resumo
PDF
Melhorando o desempenho de suas consultas no MySql
PDF
01-Paradigmas.pdf
PPTX
Curso Java Básico - Aula02
ODP
Palestra cbq
PDF
programação de computadores - java e programação de computadores
PDF
Padrões de projeto em linguagens funcionais
PDF
Minicurso javascript
PDF
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
PDF
Implementação de
PDF
Reduzindo o boilerplate code com Lombok
PDF
Introdução ao paradigma funcional com scala
PDF
Palestra Desenvolvimento Ágil para Web com ROR UVA
PDF
Minicurso PostgreSQl
PDF
Clean code part 2
Uma implementação de suporte a
Teste de Integração - Unidade III
Minicurso Node.js fullstack IFCE - 2015-11-28
XML Schema (2002)
Sql básico - Teoria e prática: Um grande resumo
Melhorando o desempenho de suas consultas no MySql
01-Paradigmas.pdf
Curso Java Básico - Aula02
Palestra cbq
programação de computadores - java e programação de computadores
Padrões de projeto em linguagens funcionais
Minicurso javascript
Removendo o cheiro ruim do seu código - PHPSC Conf 2011
Implementação de
Reduzindo o boilerplate code com Lombok
Introdução ao paradigma funcional com scala
Palestra Desenvolvimento Ágil para Web com ROR UVA
Minicurso PostgreSQl
Clean code part 2
Anúncio

Apresentacao models

  • 1. Django Models ● Estrutura da classe models.Model ● Como funcionam os managers ● Queryset e seus atributos ● Como o django gera SQL? ● Consultas compexas ● Integração com o pacote admin ● Básico do admin Guilherme Kuhn 1
  • 2. models.Model ● Atributos mais usados da class Meta: ● db_table ● managed ● ordering ● unique_together ● verbose_name ● verbose_name_plural     
  • 3. models.Model db_table ● Nome da tabela que será usada. ● db_table = 'PESSOA_FISICA' ● Oracle com usuarios ● db_table = 'sisacad”.”PESSOA_FISICA'    
  • 4. models.Model managed ● O atributo managed informa se o django deve ou  não criar a tabela quando executado o syncdb ● Valores: True/False ● Default: True    
  • 5. models.Model ordering ● Determina a ordenação padrão do model. ● Valores: Lista dos campos em sequencia. ● Não é usado quando: ● Orcamento.objects.order_by('valor') ● Orcamento.objects.filter().order_by('valor') ● É usado quando: ● Orcamento.objects.filter() ● Orcamento.objects.all()    
  • 6. models.Model unique_together ● Usado unicamente na geração do SQL para a  criação das tabelas. ● Valores: Tupla unica, ou lista de tuplas ● unique_together = ('campo', 'campo1', 'campo2') ● unique_together = ( ('campo1', 'campo2'), ('campo2', 'campo3'), )    
  • 7. models.Model verbose_name(_plural) ● Se este atributo não for informado por padão o  django irá usar o nome da classe. ● Usado no menu da interface de administração.    
  • 9. Model Fields ● Atributos básicos ● Null ● editable ● Blank ● help_text ● Choices ● primary_key ● db_column ● Unique ● db_index ● verbose_name ● Default ● validators    
  • 10. Model Fields ● Null – Relação com o Banco de Dados ● True/False ­  Default: False ● Blank – Relação com o formulário – igual null. ● Choices – Mesmo comportamento do Forms. ● db_column – Informa o nome do campo na tabela. ● db_index – Cria um idice para o campo. ● True/False – Default: False ● Default – informa um valor padrão para o campo   ● Pode ser um método  
  • 11. Model Fields ● Editable – Referencia ao Form. Se False, o campo  não aparece no formulário. ● help_text – mesmo comportamento do Forms. ● Primary_key – Indica se um campo é pk da tabela. ● Não é suportado chave primaria composta ● Apenas 1 campo deve ter primary_key = True. ● Unique – Cria o campo na tabela como sendo de  valor unico. ● Validators – lista com metodos para validar os    valores inseridos no campo.  
  • 13. Managers ● Interface de comunicação entre o model e o banco  de dados. ● Principais métodos: ● .filter(*args, **kwargs) ● .order_by(lista ou string) ● .get(*args, **kwargs) ● .all()    
  • 14. Managers ● .filter(*args, **kwargs) ● .filter(campo1='teste', campo2=1234) ● .filter(**{'campo1': 'teste'}) ● pesquisa = {'campo2': 1234} ● .filter(campo1='teste', **pesquisa) ● Retorna sempre um objeto Queryset    
  • 15. Managers ● .get(*args, **kwargs) ● Aceita o mesmo tipo de parametro que o .filter ● Retorna apenas 1 objeto sempre ● Caso não seja encontrado nenhum objeto joga  exception model.DoesNotExist ● Caso seja encontrado mais de 1 objeto, joga  exception model.MultipleObjectsReturned    
  • 16. Managers ● .all() ­ Retorna um queryset com todos os objetos  cadastrados. ● .order_by(order) ● Retorna um queryset com os objetos ordenados  conforme a ordenação passada.    
  • 17. Queryset ● Field Lookups ● Complementos das consultas para cada campo. ● exact, iexact, contains, icontains, in, gt, gte, lt, lte,  startswith, istartswith, endswith, iendswith, range,  isnull.    
  • 18. Queryset ● A execução de um queryset é preguiçosa. ● Podemos executar diversos filtros um sobre o outro,  para termos uma consulta complexa no final.    
  • 20. Consultas complexas ● Objeto Q (from django.db.models import Q) ● Objetos Q podem ser passados para o manager ou  para um queryset. ● Sintaxe: ( | OR) (& AND)    
  • 21. Admin ● from django.contrib import admin ● Classe admin.ModelAdmin ● list_display = ('campo', 'campo2', 'campo3',) ● list_filters = ('campo3','campo4') ● search_fields = ['campo','campo1'] ● Registrando Admin. ● admin.site.register(ModelName, AdminName)    
  • 22. Admin    
  • 23. Contato Guilherme Kuhn <g.kuhn0@gmail.com> http://gkuhn.com