Oficina de django. 1º Dia - Introdução à ferramenta

Documentos relacionados
Tutorial Ambiente, instalação e começando um novo projeto Django

Globo Photo Documentation

Osvaldo Santana Thiago Galesi

O CMS JOOMLA! UM GUIA PARA INICIANTES

Ademir Cristiano Gabardo. Novatec

Popebu CMS Documentation

Desmistificando as aplicações RESTful usando o Django Rest. Bruno Oliveira Instituto Federal da Bahia

Tutorial Django e SVN na IDE Pycharm

Tutorial Python Django: Formulários

django-pagseguro Documentation

Apostila - Desenvolvimento web com PHP

Popebu CMS Documentation

Popebu CMS Documentation

Objetivos do mini curso. Conhecer a linguagem. Noção de programação utilizando Python. Aprender o báscio.

Administração de Sistemas Operacionais. Prof. Marlon Marcon

M V C P R O F. M E. H É L I O E S P E R I D I Ã O

AULA 2 VISÃO BÁSICA DE CLASSES EM PHP

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

Avaliação de Frameworks de Produtividade para aplicações CRUD

Desenvolvimento Web II

Conexão do Banco de Dados localhost

DOUGLAS CERQUEIRA. FACEBOOK: /douglascruzc

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 9- Introdução ao JDBC

Configuração do Apache Cordova Lab. 13. Prof. Bruno C. Vani

M V C, J S O N E X M L P R O F. M E. H É L I O E S P E R I D I Ã O

Sistema SGPA-IFSP. Manual de Instalação

Gerando um programa executável a partir de um módulo Python

REST. Representational State Transfer. É um estilo arquitetural usado por muitas aplicações Web para estender as suas funcionalidades.

Desenvolvimento Web II

Criando Classes em PHP

Desenvolvendo Websites com PHP

Código PD0017. Este documento ter por objetivo auxiliar o usuário no entendimento e utilização do Nexus.

Dreamweaver CS6 Plano de Aula - 24 Aulas (Aulas de 1 Hora).

Dreamweaver CS5 Plano de Aula - 24 Aulas (Aulas de 1 Hora).

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 09a- Acessando os dados através JDBC

IFC PORTARIAS: SISTEMA PARA PUBLICAÇÃO E MONITORAMENTO DE PORTARIAS

Exercitando a Programação com PHP

Sistema de Informação e Coordenação - SIC

Plano de Aula - Dreamweaver CS5 - cód Horas/Aula

Introdução ao C# com o Microsoft Visual Studio Community 2015

Matéria Introdutória. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

GERAÇÃO DE ARQUIVOS DE SCRIPT EM PHP. Acadêmico: Leonardo Sommariva Orientador: Alexander Roberto Valdameri

Apostila - Desenvolvimento web com PHP

Tendo em vista que a instalação é muito fácil (Next, next, finish) não iremos abordar isto ok ;)

EA975 - Laboratório de Engenharia de Software

Instrução de Trabalho: Instalar Client

Continuação... Criando a Interface e adiante

DANJGO. Exemplo de criação de um Blog

Python para web com Flask. #PythonAmazonas

Android e Bancos de Dados

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

DISTRIBUINDO SUA APLICAÇÃO

Manual Técnico. Instalação e Configuração do Reporting Services

Laboratório FTP. Francisco Edigleison da Silva Barbosa Professor: Kelvin Lopes Dias

Nota de Aplicação: Utilização de Base de Dados MySQL com BluePlant. Sumário

Instalando Apache Solr no Mac OSX

Criando Mensagens - Editor Drag and Drop

BANCO DE DADOS GERENCIAL 1 A U L A 2

1ª FECITI - FEIRA MUNICIPAL DE CIÊNCIA E TECNOLOGIA E INOVAÇÃO DE RONDONÓPOLIS

Zabbix 3 Instalação INSTALAÇÃO

Desenvolvimento Web II

Instalação Wiser Discovery Sistema Operacional Windows

Manipulação de Dados em PHP (Integração PHP e MySql) Parte 1

Guia Rápido. Elgin L42-DT Impressora de etiquetas.

Conceitos de Sistemas de Banco de Dados INE 5323

EA975 - Laboratório de Engenharia de Software. Objetivo do curso. Turmas K/L Aula 1

Computação II (MAB 225)

Programação procedimental

DreamweaverCC Plano de Aula - 24 Aulas (Aulas de 1 Hora).

COLOSSUS DESENVOLVIMENTO DE FERRAMENTA CASE PARA APOIO A CRIAÇÃO DE SISTEMAS WEB UTILIZANDO FRAMEWORKS PHP COMO MODELO E BANCO DE DADOS MYSQL RESUMO

Conexão com Banco de Dados

FIGURA 59 Interação entre componentes da plataforma CrystalWalk. Fonte: do autor.

Administrando site em WordPress. Lucia Costa

TUTORIAL PARA INSTALAÇÃO DO MYSQL SERVER

ITQ InPrint Cobrança. Manual do Usuário Atualizado em: 27/02/2012.

Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD

Laboratório SMTP. Francisco Edigleison da Silva Barbosa Professor: Kelvin Lopes Dias

Desenvolvendo aplicações Java

Descobrindo Lua. Sérgio Queiroz de Medeiros. Campus Party LabLua. Sérgio Queiroz de Medeiros Descobrindo Lua 1

Instalação em Windows 64 bits de Python3, OpenCV4 e Tensorflow12:

Configuração do banco de dados. - Crie o banco de dados no MySQL. - Abrir o arquivo app/database/database.conf.php

Diário. João Estrela... F Michael Jackson F F. F Geisy Arruda... Patolino... Peter Griffin F. F.

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

MINICURSO LARAVEL 5.5 Gil Eduardo de Andrade

Prof. Esp. Fabiano Taguchi PHP. Como surgiu o PHP? PHP

A Instalação do ez Publish 3

Oracle Database 10g: Fundamentos de SQL e PL/SQL

Plano de Aula - DreamWeaver CC - cód Horas/Aula

Interface gráfica do linux

Módulo: PYTHON. Felipe Oliveira

ADIANTI FRAMEWORK PARA PHP

Como Instalar Nagios 4 E Monitorar Seus Servidores no Ubuntu 14 Introdução

arquitetura shared-nothing em 3 camadas

Como criar sua aplicação em React em poucos minutos. um ebook produzido por: CodePrestige

Guia de Instalação Oracle Service Bus 12c com Eclipse OEPE

Bom, o Flex proporciona, de acordo com a criatividade do desenvolvedor ou designer, um resultado final fantástico!

GLPI Gestão total e gratuita do seu parque informático

Transcrição:

Oficina de django 1º Dia - Introdução à ferramenta

Objetivo A oficina terá seu foco em desenvolvimento back-end, utilizando o framework Django da linguagem Python.

O que será abordado? Introdução a linguagem Python; Instalação da ferramenta e criação de projeto/aplicação; Arquitetura MTV x MVC; Manipulação de Banco de Dados; Criação de um CRUD (Create, Read, Update e Delete); O exemplo será para o gerenciamento de filmes; Upload de mídias; Modificações no projeto para utilização de outros gerenciadores de bancos de dados.

Projeto exemplo

Quem somos?

Sumário Princípios Básicos Criação de Projeto Django Estrutura de projeto Django Configuração do Projeto Arquivos Models.py e Forms.py

Princípios Básicos C Python Entrada e saída Utilização de arrays Estruturas de decisão

Python Orientada a Objetos Tipagem dinâmica e forte O próprio Python infere o tipo dos dados que uma variável recebe Sensitivo a espaços Não possui { } e ;

String >>> "teste" 'teste' Concatenar >>> "Coé " + "Rapaziada" 'Coé Rapaziada' Métodos >>> len( paralelepipedo ) 14

Declaração de variáveis >>> nome = Fausto Saída de dados >>> nome 'Fausto' >>> print (nome) Fausto

Arrays/Listas >>> sorteio = [4, 23, 22, 9, 75, 61] Métodos: len, sort, append, reverse Exemplo >>> sorteio.reverse() >>> print(sorteio) >>> [61, 75, 9, 22, 23, 4]

Estruturas de decisão: if, elif, else Exemplo: imc = 11 if imc < 18: print("abaixo do peso") elif 18 <= imc < 25 print( Peso ideal ) elif 25 <= imc < 35: print("sobrepeso") else: print("obeso )

Executar programas em python python3 <nome.py> Exemplo: arquivo: teste.py >>> python3 teste.py

Ambiente Virtual Ambiente virtual (também chamado de virtualenv). Desenvolver usando DJANGO dentro de uma virtualenv é altamente recomendado pois ela isola seus projetos, ou seja, pode-se alterar um projeto sem afetar outros. E agora vamos para a instalação do Django...

Criação de Projeto Django C Comandos Criação do admin

Instalação Python Linux Download python: sudo apt-get install python3.5 Checar instalação: $ python3 --version Iniciar python python3

Instalação Django Criar pasta de instalação (oficinadjango): mkdir <pasta> Acessar pasta: cd <pasta> Criar ambiente virtual: python3 -m venv myvenv

Instalação Django Iniciar ambiente virtual: source myvenv/bin/activate Instalar PIP - Python Package Index: pip install --upgrade pip Instalar Django: pip install django~=1.9.0

Criar Projeto Criar projeto (oficinadjango): django-admin startproject <nome> Gerar banco de dados: python3 manage.py migrate Inicializar servidor: python3 manage.py runserver

Criar Aplicação Criar aplicação (oficinafilmes): python3 manage.py startapp <nome>

Parte Front-End Como o foco da oficina o Back-End da aplicação, iremos disponibilizar os arquivos referente ao Front-End através do seguinte link: https://goo.gl/7dm7s7 Ao extrair o conteúdo, mover as pastas para: oficinadjango/oficinadjango/static oficinadjango/oficinadjango/templates

Estrutura de projeto Django M Principais arquivos MTV x MVC

Principais arquivos settings.py settings.py - configurações de banco de dados, arquivos estáticos e indicar o caminho base para as mídias e demais configurações de aplicação. import os - maneira portável de usar funcionalidades do sistema operacional (paths); BASE_DIR - variável que vai ter o caminho do nosso projeto Django. Serve para que não tenhamos que trabalhar com caminhos absolutos;

Principais arquivos settings.py DEBUG = True - mostrar informações detalhadas em uma página sobre o erro ocorrido; ALLOWED_HOSTS - lista de strings representando o host/nome de domínio que o projeto Django pode servir. Serve como uma medida de segurança para evitar que um invasor possa realizar certos tipos de ataques (envenenamento de cache, disparo de e-mails com links maliciosos, etc);

Principais arquivos settings.py INSTALLED_APPS - lista de strings designando todas as aplicações que estão habilitadas nesta instalação do Django;

Principais arquivos settings.py MIDDLEWARE - lista de classes Middleware que serão usadas no seu projeto Django. Middleware é um framework do Django, que tem um conjunto de classes que servem como gatilhos para processar e modificar request/response;

Principais arquivos settings.py ROOT_URLCONF - URL raiz do projeto. O Django precisa de um URL que seja o ponto de partida, declarado nessa variável;

Principais arquivos settings.py TEMPLATES - lista de configurações para todas as engines de templates a serem usadas pelo Django;

Principais arquivos settings.py WSGI_APPLICATION - caminho Python completo para o objeto WSGI da aplicação que os servidores built-in do Django vão utilizar; STATIC_URL - URL utilizada para se referir aos arquivos estáticos localizados no STATIC_ROOT; STATICFILES_DIRS - caminho utilizado para localizar os arquivos estáticos;

Principais arquivos settings.py DATABASES - dicionário de dicionários onde cada dicionário contém as configurações para uso de um banco de dados, possibilitando assim o uso de múltiplos bancos num mesmo projeto.

Principais arquivos - urls.py urls.py - URLs das views; regex - expressão regular para combinar padrões de URL em strings; view - função view usada para processar a solicitação do usuário para um URL correspondente; kwargs - argumentos de keywords arbitrárias passados para a view de destino; name - identificador único para a dada URL.

Principais arquivos - views.py views.py - definição das funções que vão ser exibidas nas páginas; def - declaração da função view; index - nome da função; render - função que vai renderizar (montar) nosso modelo.

Principais arquivos - forms.py forms.py - definição dos formulários onde o usuário entra com os dados para interagir com o banco; class - declaração do nosso formulário; AtorForm - nome do formulário; ModelForm - definição do tipo de objeto, o Django já estrutura ele de acordo com o forms.modelform;

Principais arquivos - forms.py forms.py - definição dos formulários onde o usuário entra com os dados para interagir com o banco; class Meta - aqui dizemos ao Django qual modelo deveria ser utilizado para criar o formulário ( model = Ator ); fields - campos de preenchimento do nosso formulário.

Principais arquivos - models.py models.py - declaração dos objetos relacionados com o banco de dados; class - palavra reservada que indica que estamos definindo um objeto; Ator - nome do nosso modelo; models.model - significa que o Ator é um modelo de Django, e que deve ser salvo no banco.

Objetos O que é um objeto? É uma coleção de propriedades e ações. Vamos a um exemplo:

Objetos Pegamos nosso modelo anterior: Ator --------nome_ator idade str ()

MVC x MTV MVC é um padrão de desenvolvimento que separa o desenvolvimento nas três camadas seguintes: Model View Controller MTV é uma outra interpretação que o Django deu para o padrão MVC, chamando o View de Template e o Controller de View. Model Template View

MVC Model - é implementado o banco de dados ou o modelo objeto-relacional; View - é onde fica a interface do sistema; Controller - são implementadas regras de negócios, onde são processados os dados vindos da camada Model e passados para a camada View. Alguns frameworks que utilizam o padrão MVC: Ruby on Rails; TurboGears; Mentawai; Laravel.

MVC

MTV Model - é implementado o banco de dados ou o modelo objeto-relacional; Template - é implementado o modo que a informação vai ser apresentada; View - função de retorno para uma URL, porque esta função de retorno descreve qual informação deve ser apresentada.

MTV Onde se encaixa o Controller, então? Pode-se dizer que é o próprio framework, no caso do Django, o maquinário que envia uma requisição para a View apropriada, de acordo com a configuração de URL do Django.

MTV

Configuração do Projeto V Configuração do settings.py Adição dos arquivos estáticos e templates

Configurando o settings.py Inserção do app no projeto. Importação dos arquivos estáticos. Importação dos templates.

Templates Um template é um arquivo que nos permite exibir diferentes informações de uma mesma forma consistente. Por exemplo, poderíamos usar um template para escrever uma carta, pois apesar de terem destinos e conteúdos diferentes, possuem o mesmo formato. O formato do template do Django é baseado em HTML.

Adição dos templates Vamos criar um diretório para os templates. Os templates são salvos no diretório oficinadjango/templates/oficinafilmes.

Importando os templates Precisamos importar todos os templates que serão criados para o projeto.

URLs Uma URL nada mais é que um endereço web, nós vemos uma URL toda vez que acessamos uma página da web. Cada página deve ter sua própria URL, dessa forma o app sabe o que mostrar ao usuário que acessa uma URL.

Importando as URLs Vamos abrir o arquivo oficinadjango/urls.py. Vamos utilizar a função include para fazer a importação das urls do arquivo, que criaremos posteriormente, oficinafilmes/urls.py.

Adição das URLs no app Vamos criar o arquivo oficinafilmes/urls.py e inserir as seguintes linhas: Aqui estamos apenas importando as URLs do Django e todas as views, que criaremos posteriormente.

Arquivos estáticos Arquivos estáticos são todas as imagens e arquivos CSS, é todo arquivo que não é dinâmico, ou seja, não importa o contexto da requisição, seu conteúdo será sempre o mesmo, para todos os usuários.

Importando arquivos estáticos Em oficinadjango/settings.py, para importar os arquivos estáticos que serão criados, inserir o seguinte código:

Arquivos models.py e forms.py L Introdução a BD Declaração do Banco no models.py Criação dos forms.py

Introdução a BD Coleção de dados, onde são armazenadas informações (geralmente em tabelas) utilizadas na aplicação, como: Dados do usuário; Dados de postagens (ou filmes nesse caso); Etc. ator ID nome idade 1 Morgan Freeman 80 2 Ben Affleck 45

Introdução a BD Para gerenciar o banco de dados existem algumas opções de SGBDS, algumas das mais conhecidas são: MySQL PostgreSQL Oracle SQLite MongoDB SQLite Banco de dados padrão do Django; Não irá requerer nenhuma instalação adicional;

Declaração do BD no models.py Vamos até o arquivo oficinafilmes/models.py Nesse arquivo serão definidos todos os modelos que iremos utilizar na aplicação; Cada modelo corresponde a uma tabela do banco de dados;

Declaração do BD no models.py Vamos até o arquivo oficinafilmes/models.py Nesse arquivo serão definidos todos os modelos que iremos utilizar na aplicação; Cada modelo corresponde a uma tabela do banco de dados; Vamos codificar!

Vamos codificar! Podemos apagar o conteúdo e copiar o seguinte código:

Vamos entender o que acabamos de fazer! from import Adicionam partes de outros arquivos class Ator(models.Model): Define o nosso modelo de Ator

Vamos entender o que acabamos de fazer! models.charfield models.positiveintegerfield models.decimalfield - models.manytomanyfield(ator) String Int Unsigned Números decimais Definem os tipos de dados de cada uma das colunas da tabela Observe que cada filme pode ter vários atores, assim como cada ator pode estar em vários filmes. Esse é o comando responsável por criar essa relação.

Vamos entender o que acabamos de fazer! models.foreignkey Cria uma relação com outra tabela, onde por exemplo, um filme teria apenas um diretor. Outros tipos de dados podem ser verificados em: https://docs.djangoproject.com/en/1.11/ref/models/fields/

Vamos entender o que acabamos de fazer! def str (self): return self.nome_ator Método criado para retornar o nome de um ator. Atenção para o duplo underscore (_) de cada lado de str.

Criando as tabelas no Banco Com os modelos criados, agora podemos criar as tabelas no BD. Para isso é preciso realizar os seguintes comandos: Para informar ao Django das atualizações (cria migrations): python3 manage.py makemigrations oficinafilmes Para aplicar essas atualizações: python3 manage.py migrate oficinafilmes

Banco de dados criado! Pronto, agora já temos nosso banco de dados criado!

Paramos AQUI!! Faça o download em: https://goo.gl/dm2atu

Criação dos forms.py Os formulários nos permitem manipular da maneira que desejarmos as interfaces para cadastrar e editar os registros; Pode-se também criar um ModelForm que irá mandar as informações diretamente para um Modelo; Agora vamos criar o arquivo oficinafilmes/forms.py

Criação dos forms.py Os formulários nos permitem manipular da maneira que desejarmos as interfaces para cadastrar e editar os registros. Pode-se também criar um ModelForm que irá mandar as informações diretamente para um Modelo; Agora vamos criar o arquivo oficinafilmes/forms.py Vamos codificar!

Vamos codificar!

Vamos codificar!

Vamos entender o que acabamos de fazer! (rapidamente) Importamos os módulos necessários para a criação do formulário; Foram criados dois formulários ModelForm: AtorForm e ProducaoForm; A classe meta indica que qual modelo será usado para cada um dos formulários através de model; Já a variável fields indica quais os campos serão utilizados em cada formulário;

Vamos entender o que acabamos de fazer! (rapidamente) A função init funciona como um construtor para a classe, ela será executada cada vez que o formulário for instanciado; Estamos utilizando essa função para podermos utilizar as classes aplicar as classes do Bootstrap aos campos de cada formulário.

Visualização do formulário Pronto, agora que temos nossos formulários criados; Para visualizá-lo precisaremos configurar uma rota em urls.py para um função em view.py que será responsável por tratar a requisição ao formulário; Para teste iremos realizar o processo a seguir...

Visualização do formulário Inserir o seguinte código em oficinafilmes/urls.py url(r'^atorform/$', views.ator_form, name='ator_form') Inserir o seguinte código em oficinafilmes/view.py def ator_form(request): form = AtorForm() return render(request, 'oficinafilmes/cadastroator.html', {'form': form})

Visualização do formulário

REFERÊNCIAS https://tutorial.djangogirls.org/pt/django/ https://simpleisbetterthancomplex.com/series/2017/09/0 4/a-complete-beginners-guide-to-django-part-1.html https://docs.djangoproject.com/en/1.11/ DÚVIDAS? pet-si@inf.ufsm.br