Minicurso de Django 1.10 com a criação de um projeto completo em Django e conteúdos sobre:
Introdução a Python, Autenticação de usuários Django, Relacionamentos de classes do Django. Templates, etc.
O documento discute o conceito de funções em C++. Resume as seguintes informações essenciais:
1) Uma função é um conjunto de instruções agrupadas com um nome para executar uma tarefa específica. Qualquer sequência de código que se repete é candidata a ser uma função;
2) As funções permitem dividir um programa grande em partes menores e reutilizáveis, melhorando a organização do código;
3) Os principais elementos de uma função são o cabeçalho, parâmetros e corpo.
Verificação visa assegurar que o software seja desenvolvido de um modo apropriado e consistente. Validação visa assegurar que o software corresponda aos requisitos estabelecidos. Teste visa examinar o comportamento do software através de sua execução.
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
Aula 2 da disciplina Programação Orientada a Objetos, onde é apresentando o conceito inicial da linguagem JAVA, que será a base da aplicação prática na disciplina.
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
O professor Thomás da Costa apresenta-se e fornece informações sobre o curso de Algoritmos e Estrutura de Dados. Ele detalha sua experiência profissional, as formas de avaliação do curso, os tópicos que serão abordados e a importância da disciplina para a carreira de programador.
Aborda aspectos da elicitação, gestão e documentação dos requisitos de um software. Estudo dos desafios que o analista de sistemas precisa enfrentar. Expõe exemplos dos tipos de artefatos de requisitos que podem ser documentados. Recomenda melhores práticas para a escrita dos requisitos e casos de uso.
Este documento apresenta uma aula sobre levantamento e análise de requisitos, cobrindo tópicos como:
- Definição de requisitos e seus objetivos
- Classificação de requisitos em funcionais, não funcionais, de domínio, do usuário e do sistema
- Exemplos de cada tipo de requisito
O documento descreve os principais conceitos e práticas do framework Scrum para gestão de projetos ágeis, incluindo os papéis de Product Owner, Scrum Master e time de desenvolvimento, os artefatos como Product Backlog e Sprint Backlog, e as cerimônias como Sprint Planning, Daily Scrum, Sprint Retrospective e Sprint Review. O objetivo do Scrum é entregar valor ao cliente de forma contínua por meio de feedback frequente e melhoria contínua.
O documento discute o conceito de funções em C++. Resume as seguintes informações essenciais:
1) Uma função é um conjunto de instruções agrupadas com um nome para executar uma tarefa específica. Qualquer sequência de código que se repete é candidata a ser uma função;
2) As funções permitem dividir um programa grande em partes menores e reutilizáveis, melhorando a organização do código;
3) Os principais elementos de uma função são o cabeçalho, parâmetros e corpo.
Verificação visa assegurar que o software seja desenvolvido de um modo apropriado e consistente. Validação visa assegurar que o software corresponda aos requisitos estabelecidos. Teste visa examinar o comportamento do software através de sua execução.
Aula 2 - POO: Fundamentos da linguagem JavaDaniel Brandão
Aula 2 da disciplina Programação Orientada a Objetos, onde é apresentando o conceito inicial da linguagem JAVA, que será a base da aplicação prática na disciplina.
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
O professor Thomás da Costa apresenta-se e fornece informações sobre o curso de Algoritmos e Estrutura de Dados. Ele detalha sua experiência profissional, as formas de avaliação do curso, os tópicos que serão abordados e a importância da disciplina para a carreira de programador.
Aborda aspectos da elicitação, gestão e documentação dos requisitos de um software. Estudo dos desafios que o analista de sistemas precisa enfrentar. Expõe exemplos dos tipos de artefatos de requisitos que podem ser documentados. Recomenda melhores práticas para a escrita dos requisitos e casos de uso.
Este documento apresenta uma aula sobre levantamento e análise de requisitos, cobrindo tópicos como:
- Definição de requisitos e seus objetivos
- Classificação de requisitos em funcionais, não funcionais, de domínio, do usuário e do sistema
- Exemplos de cada tipo de requisito
O documento descreve os principais conceitos e práticas do framework Scrum para gestão de projetos ágeis, incluindo os papéis de Product Owner, Scrum Master e time de desenvolvimento, os artefatos como Product Backlog e Sprint Backlog, e as cerimônias como Sprint Planning, Daily Scrum, Sprint Retrospective e Sprint Review. O objetivo do Scrum é entregar valor ao cliente de forma contínua por meio de feedback frequente e melhoria contínua.
O documento apresenta conceitos sobre arrays em C, incluindo: 1) arrays são estruturas de dados que armazenam itens do mesmo tipo; 2) arrays possuem tamanho fixo e elementos são acessados via índice; 3) arrays podem ser inicializados de forma explícita ou implícita. Exemplos demonstram operações comuns com arrays como inicialização, impressão e cálculos.
DevCamp - O papel de um testador em uma equipe ágilElias Nogueira
Nesta apresentação são colocados alguns pontos/papéis do testador em uma equipe ágil e as principais dúvidas de uma equipe quando alguém "veste o chapéu" de teste ou teremos um testador na equipe.
Análise essencial e análise estruturadaWagner Bonfim
O documento descreve as metodologias de Análise Estruturada e Análise Essencial para desenvolvimento de sistemas. A Análise Estruturada enfatiza os processos e fluxos de dados, enquanto a Análise Essencial também considera os dados e controles. Esta última é considerada uma evolução da primeira por abordar o sistema de forma independente de restrições tecnológicas.
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
O documento apresenta os principais conceitos da análise orientada a objetos, incluindo objetos, classes, encapsulamento, herança, mensagens e diagrama de classes. Objetos são entidades que combinam estrutura e comportamento, enquanto classes descrevem conjuntos de objetos semelhantes. A análise orientada a objetos permite modelar sistemas com base no mundo real através destes conceitos.
O documento discute a metodologia 8D para resolução de problemas, apresentando suas etapas e ferramentas. As principais etapas são: 1) Formação do time de trabalho; 2) Descrição do problema; 3) Identificação das causas raízes por meio de técnicas como Diagrama de Ishikawa e Gráfico de Pareto.
Um desafio prático dos testes de unidade é a dependência entre unidades. Quando uma unidade depende de outras, é necessário desenvolver stubs (unidades substitutas) para as unidades dependentes para que a unidade sob teste possa ser testada isoladamente. Isso requer esforço adicional de desenvolvimento que pode atrasar o processo de teste. Além disso, bugs nos stubs podem mascarar ou simular bugs na unidade real, comprometendo a efetividade dos testes. Gerenciar as dependências entre unidades para permitir testes isolados é um desafio na prática dos testes de
O documento discute o conceito de herança em programação orientada a objetos. Explica que a herança permite a reutilização de código através da criação de novas subclasses que herdam atributos e métodos de classes existentes (superclasses), permitindo economia de tempo no desenvolvimento de software. Detalha os conceitos de superclasse, subclasses, hierarquia de classes e relacionamentos entre classes, como herança simples e múltipla.
Este documento apresenta um modelo de plano de testes para um novo sistema. Ele descreve o escopo e objetivos dos testes, incluindo testes funcionais, de integração e de aceitação. Além disso, define os critérios de entrada e saída para o teste do sistema, como a correção de erros de alta prioridade e a conclusão de testes de integração e aceitação com sucesso.
O documento fornece um resumo abrangente sobre o sistema operacional Linux, cobrindo tópicos como história, licenciamento, processos, gerenciamento de memória, entrada e saída, sistemas de arquivos. É dividido em seções que discutem esses diferentes aspectos do kernel Linux.
1) O documento discute constantes e variáveis, apresentando suas definições e características principais. Constantes são valores imutáveis representados em caixa alta, enquanto variáveis armazenam valores que podem mudar.
2) Regras para identificação de variáveis e constantes são explicadas, como não começar com números e usar minúsculas para variáveis.
3) A atribuição e a declaração são processos para colocar valores nas variáveis, sendo a atribuição feita com o operador =.
Apostila Linguagens Formais e Autômatos (LFA)Ricardo Terra
Ricardo Terra apresenta um documento sobre linguagens formais e autômatos. O documento inclui seu currículo, experiência acadêmica e profissional, e um sumário do conteúdo abordado, incluindo revisões sobre conjuntos, definições recursivas, indução matemática e linguagens formais.
O documento discute modelos de ciclo de vida para desenvolvimento de software. Explica que um modelo de ciclo de vida define as etapas de desenvolvimento, lançamento, aprimoramento e finalização de um software. Descreve brevemente os modelos Big Bang, Constrói e Corrige, Cascata e Espiral.
Este documento apresenta os conceitos e processos de teste de software, incluindo as fases de teste de componente, integração e sistema. O objetivo dos testes é verificar aspectos estruturais, lógicos e sistêmicos do software para descobrir defeitos de forma eficiente. O processo de teste deve ser realizado em fases por equipes de desenvolvedores e testadores para garantir a qualidade do software.
Apresentação sobre TDD - Test Driven Development no Campus Party 2013 em São Paulo no dia 2/2/2013 onde apresento o que é TDD com uma abordagem prática
O documento discute os processos de engenharia de requisitos para software, incluindo a definição de requisitos funcionais e não funcionais. Apresenta os tipos de requisitos como requisitos de usuário, sistema e especificação de software. Também discute representações estruturadas de requisitos e linhas guias para elaboração de requisitos.
Desenvolvimento de Interface Gráfica - Introdução ao desenvolvimento de int...Cleber Fonseca
O documento discute os principais conceitos e técnicas de design de interfaces, incluindo experiência do usuário, interface do usuário, card sorting, wireframes, mapas de sites e design responsivo. É apresentado como esses métodos podem ser usados para criar interfaces intuitivas e eficientes para os usuários.
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
O documento discute o framework Django para desenvolvimento web em Python. Ele apresenta as principais características do Django como mapeamento objeto-relacional, estrutura MVT e internacionalização. Em seguida, descreve a criação de uma aplicação de microblog usando Django, incluindo a geração do ambiente de desenvolvimento, modelos, URLs, views, templates e forms.
Django é um framework web escrito em Python que utiliza o padrão MTV, foi criado originalmente para gerenciar um site jornalístico e se tornou um projeto de código aberto em 2005 sob a licença BSD.
O documento apresenta conceitos sobre arrays em C, incluindo: 1) arrays são estruturas de dados que armazenam itens do mesmo tipo; 2) arrays possuem tamanho fixo e elementos são acessados via índice; 3) arrays podem ser inicializados de forma explícita ou implícita. Exemplos demonstram operações comuns com arrays como inicialização, impressão e cálculos.
DevCamp - O papel de um testador em uma equipe ágilElias Nogueira
Nesta apresentação são colocados alguns pontos/papéis do testador em uma equipe ágil e as principais dúvidas de uma equipe quando alguém "veste o chapéu" de teste ou teremos um testador na equipe.
Análise essencial e análise estruturadaWagner Bonfim
O documento descreve as metodologias de Análise Estruturada e Análise Essencial para desenvolvimento de sistemas. A Análise Estruturada enfatiza os processos e fluxos de dados, enquanto a Análise Essencial também considera os dados e controles. Esta última é considerada uma evolução da primeira por abordar o sistema de forma independente de restrições tecnológicas.
Análise Orientada a Objetos - Objetos E ClassesCursoSENAC
O documento apresenta os principais conceitos da análise orientada a objetos, incluindo objetos, classes, encapsulamento, herança, mensagens e diagrama de classes. Objetos são entidades que combinam estrutura e comportamento, enquanto classes descrevem conjuntos de objetos semelhantes. A análise orientada a objetos permite modelar sistemas com base no mundo real através destes conceitos.
O documento discute a metodologia 8D para resolução de problemas, apresentando suas etapas e ferramentas. As principais etapas são: 1) Formação do time de trabalho; 2) Descrição do problema; 3) Identificação das causas raízes por meio de técnicas como Diagrama de Ishikawa e Gráfico de Pareto.
Um desafio prático dos testes de unidade é a dependência entre unidades. Quando uma unidade depende de outras, é necessário desenvolver stubs (unidades substitutas) para as unidades dependentes para que a unidade sob teste possa ser testada isoladamente. Isso requer esforço adicional de desenvolvimento que pode atrasar o processo de teste. Além disso, bugs nos stubs podem mascarar ou simular bugs na unidade real, comprometendo a efetividade dos testes. Gerenciar as dependências entre unidades para permitir testes isolados é um desafio na prática dos testes de
O documento discute o conceito de herança em programação orientada a objetos. Explica que a herança permite a reutilização de código através da criação de novas subclasses que herdam atributos e métodos de classes existentes (superclasses), permitindo economia de tempo no desenvolvimento de software. Detalha os conceitos de superclasse, subclasses, hierarquia de classes e relacionamentos entre classes, como herança simples e múltipla.
Este documento apresenta um modelo de plano de testes para um novo sistema. Ele descreve o escopo e objetivos dos testes, incluindo testes funcionais, de integração e de aceitação. Além disso, define os critérios de entrada e saída para o teste do sistema, como a correção de erros de alta prioridade e a conclusão de testes de integração e aceitação com sucesso.
O documento fornece um resumo abrangente sobre o sistema operacional Linux, cobrindo tópicos como história, licenciamento, processos, gerenciamento de memória, entrada e saída, sistemas de arquivos. É dividido em seções que discutem esses diferentes aspectos do kernel Linux.
1) O documento discute constantes e variáveis, apresentando suas definições e características principais. Constantes são valores imutáveis representados em caixa alta, enquanto variáveis armazenam valores que podem mudar.
2) Regras para identificação de variáveis e constantes são explicadas, como não começar com números e usar minúsculas para variáveis.
3) A atribuição e a declaração são processos para colocar valores nas variáveis, sendo a atribuição feita com o operador =.
Apostila Linguagens Formais e Autômatos (LFA)Ricardo Terra
Ricardo Terra apresenta um documento sobre linguagens formais e autômatos. O documento inclui seu currículo, experiência acadêmica e profissional, e um sumário do conteúdo abordado, incluindo revisões sobre conjuntos, definições recursivas, indução matemática e linguagens formais.
O documento discute modelos de ciclo de vida para desenvolvimento de software. Explica que um modelo de ciclo de vida define as etapas de desenvolvimento, lançamento, aprimoramento e finalização de um software. Descreve brevemente os modelos Big Bang, Constrói e Corrige, Cascata e Espiral.
Este documento apresenta os conceitos e processos de teste de software, incluindo as fases de teste de componente, integração e sistema. O objetivo dos testes é verificar aspectos estruturais, lógicos e sistêmicos do software para descobrir defeitos de forma eficiente. O processo de teste deve ser realizado em fases por equipes de desenvolvedores e testadores para garantir a qualidade do software.
Apresentação sobre TDD - Test Driven Development no Campus Party 2013 em São Paulo no dia 2/2/2013 onde apresento o que é TDD com uma abordagem prática
O documento discute os processos de engenharia de requisitos para software, incluindo a definição de requisitos funcionais e não funcionais. Apresenta os tipos de requisitos como requisitos de usuário, sistema e especificação de software. Também discute representações estruturadas de requisitos e linhas guias para elaboração de requisitos.
Desenvolvimento de Interface Gráfica - Introdução ao desenvolvimento de int...Cleber Fonseca
O documento discute os principais conceitos e técnicas de design de interfaces, incluindo experiência do usuário, interface do usuário, card sorting, wireframes, mapas de sites e design responsivo. É apresentado como esses métodos podem ser usados para criar interfaces intuitivas e eficientes para os usuários.
Django: Desenvolvendo uma aplicação web em minutosRodrigo Nossal
O documento discute o framework Django para desenvolvimento web em Python. Ele apresenta as principais características do Django como mapeamento objeto-relacional, estrutura MVT e internacionalização. Em seguida, descreve a criação de uma aplicação de microblog usando Django, incluindo a geração do ambiente de desenvolvimento, modelos, URLs, views, templates e forms.
Django é um framework web escrito em Python que utiliza o padrão MTV, foi criado originalmente para gerenciar um site jornalístico e se tornou um projeto de código aberto em 2005 sob a licença BSD.
Searching for Candidates On Google: A Primer Amitai Givertz
The document discusses search syntax and Boolean operators for conducting effective searches on Google. It covers basic Boolean operators like AND, OR, and NOT and modifiers like parentheses, quotation marks, and asterisks. It also discusses other search commands like intitle:, inurl:, filetype:, site:, related:, and intext: that can focus searches by file type, title, URL, or site. The goal is to help users build targeted search queries through an understanding of syntax rules and logical expressions.
This document provides an overview and introduction to Django Girls training on Django and web development. It covers the following key points:
- Django is a Python web framework that makes building websites faster and easier. It includes components that handle common tasks like database access.
- The tutorial will teach you to build a simple blog application. By the end, you will have a working blog that you can deploy for others to see online.
- It introduces important concepts like how the internet works, what the command line is, what Django is, why frameworks are useful, and how requests are handled in Django.
- It provides instructions on installing Django and setting up a development environment with a virtual environment and SQLite database.
This document discusses Django class-based views and mixins. It begins by explaining function-based views and how they work by taking an HTTP request and returning a response. It then introduces class-based views, which are based on classes and use mixins to add functionality. Mixins provide reusable functionality that can be inherited by multiple classes. The document outlines common Django generic class-based views and how they work with mixins. It notes some potential downsides of mixins, such as losing track of method origins. Finally, it provides guidelines on choosing function-based or class-based views and keeping views and mixins simple.
Tutorial for using SQL in Microsoft Accessmcclellm
SQL is a programming language used to manage data in relational databases. It allows users to insert, query, update and delete data from database tables. Microsoft Access is a common program that uses SQL to interact with its data tables, allowing users to run queries to retrieve certain records based on conditions. The document provides examples of SQL statements like SELECT, UPDATE, DELETE used in Microsoft Access and videos demonstrating how to execute them to select, modify and remove data from Access tables.
This is the slides I used when I shared my humble insight on Django to the students in University of Taipei in 2016. Please feel free to correct me if there is anything wrong.
Django - Desenvolvimento web ágil com PythonIgor Sobreira
Django é um framework web escrito em Python focado em desenvolvimento ágil. Ele fornece recursos como ORM, administração, URLs amigáveis, templates, formulários e testes para facilitar a criação de aplicações web. A documentação e comunidade ativa de Django tornam o framework uma poderosa ferramenta para desenvolvimento web.
O documento descreve um curso preparatório de Linux oferecido pelo Pólo Educacional Superior de Restinga Sêca. O curso ensinará os sistemas operacionais KDE 3.5 e aplicativos do BrOffice 2.0, com aulas presenciais e não presenciais ao longo de 30 horas. O cronograma inclui aulas sobre navegação na internet com Iceweasel e avaliação final.
O plano de aula tem como objetivo refletir sobre a situação dos afrodescendentes na sociedade brasileira, despertar o senso crítico dos alunos e desenvolver a criatividade. A metodologia inclui apresentar vídeos sobre histórias e consciência negra e comentar sobre a valorização da pessoa humana independente de raça. A atividade pede aos alunos que personalizem um personagem no jogo e façam um desenho sobre consciência negra no Paint.
Este plano de ensino descreve uma disciplina de Informática Básica para estudantes de Administração. O curso irá ensinar conceitos básicos de hardware, software, sistemas operacionais e aplicativos como Word, Excel e PowerPoint. Os alunos aprenderão a usar esses aplicativos para produzir documentos, planilhas e apresentações.
O plano de aula aborda o ensino de fábulas para alunos de pré-escola. As atividades incluem ler fábulas, discutir seus significados e personagens, ilustrar as histórias, modificar seus finais, e reconhecer letras e palavras relacionadas ao tema. As aulas usarão vídeos, jogos online, atividades impressas e o laboratório de informática para envolver os alunos no aprendizado.
O documento apresenta uma introdução ao desenvolvimento web com Python e Django, abordando a história e características da linguagem Python, o interpretador Python, tipos de dados, operadores, estruturas de controle e outros conceitos básicos da linguagem.
The document provides an introduction to the Django web framework. It discusses that Django is a Python-based framework created in 2005. It uses the MTV (Model Template Views) pattern and focuses on rapid development and the DRY (Don't Repeat Yourself) principle. Django allows building reusable apps, has good documentation and makes common tasks like database access and setup easy. The document demonstrates how to install Django, create a project/app, and understand the basic components like urls.py, views.py and models.py.
Structured Query Language (SQL) - Lecture 5 - Introduction to Databases (1007...Beat Signer
The document discusses Structured Query Language (SQL) and its history and components. It notes that SQL is a declarative query language used to define database schemas, manipulate data through queries, and control transactions. The document outlines SQL's data definition language for defining schemas and data manipulation language for querying and modifying data. It also provides examples of SQL statements for creating tables and defining constraints.
O documento apresenta uma introdução ao Python, descrevendo suas principais características como linguagem de programação de alto nível, interpretada e multiplataforma. Apresenta exemplos de uso, tipos de dados, estruturas como listas e dicionários, e ferramentas como IDEs. Por fim, sugere exercícios e referências para aprofundamento no tema.
Este documento descreve um workshop sobre o framework Django. Apresenta os principais conceitos como arquitetura MVT, desenvolvimento de modelos, administração, URLs, views e templates. Inclui também exemplos de configuração inicial de um projeto, gestão de base de dados, autenticação e extensão de templates.
Este documento apresenta um curso sobre desenvolvimento web com PHP orientado a objetos. Apresenta o professor e os objetivos da disciplina, além de referências bibliográficas e sites de apoio. Também descreve os paradigmas de programação procedural e orientado a objetos, conceitos importantes de PHP OO como classes, objetos, herança, polimorfismo, construtores e destrutores. Por fim, apresenta exemplos e exercícios para fixar os conceitos.
Este documento apresenta uma introdução básica à linguagem de programação PHP. A primeira parte discute conceitos como histórico do PHP, tipos de dados, operadores, estruturas de controle e funções. A segunda parte aborda tópicos como arquivos, formulários HTML, cookies e sessões. A terceira parte apresenta conceitos de orientação a objetos em PHP.
Implementação de Aplicações Móveis e Jogos com Python - Aula 2Flávio Ribeiro
Este documento resume os principais tópicos sobre desenvolvimento de aplicações móveis e jogos com a linguagem Python, incluindo introdução à sintaxe de Python, orientação a objetos, módulos e bibliotecas, e SDK específico para desenvolvimento em dispositivos Symbian S60 usando a biblioteca PyS60.
Programando para web com python - Introdução a PythonAlvaro Oliveira
O documento apresenta uma palestra sobre a linguagem de programação Python. Resume os principais pontos da seguinte forma:
1) Apresenta breve histórico da linguagem Python, criada em 1990 por Guido van Rossum com foco em usuários como físicos e engenheiros.
2) Discutem as principais características da linguagem como interpretação, tipagem dinâmica, controle de fluxo por indentação, orientação a objetos e biblioteca padrão rica.
3) Explicam porque Python é uma boa opção para
1. O documento apresenta um workshop sobre desenvolvimento web com Django, incluindo conceitos como MVC, ambientes virtuais, estrutura de projetos, templates, models e URLs dinâmicas.
2. São apresentados os pré-requisitos e ferramentas necessárias, como conhecimento em Python, HTML e padrões MVC.
3. Passo a passo é dado para criação de um projeto Django simples com aplicação, templates, models e admin para gerenciamento de dados.
Introdução ao banco de dados não-relacional Orientado a Documentos MongoDB e apresentação do PyMongo, um driver/conector de Python para MondoDB. Realizada no VI Encontro do Python User Group de Pernambuco, no dia 14/08/2010.
O documento apresenta o ORM Doctrine para PHP, descrevendo suas principais características como mapeamento objeto-relacional, tarefas via linha de comando, caching, linguagem de consulta DQL e relacionamentos entre objetos.
Python apresenta conceitos fundamentais da linguagem como tipos de dados, controle de fluxo, funções, classes e módulos. O documento também discute quem usa Python e suas principais características como tipagem dinâmica e orientação a objetos.
O documento fornece uma introdução ao framework Django para desenvolvimento web em Python. Ele explica como instalar o Django, criar uma estrutura básica de projeto e aplicação, configurar banco de dados, criar modelos, views, templates e implementar um sistema simples de gerenciamento de conteúdo para artigos.
Python é uma linguagem de programação de alto nível, interpretada e de alta produtividade. O documento introduz Python, discute suas vantagens como simplicidade e alto nível de abstração, e apresenta conceitos básicos como variáveis, dicionários e exercícios para iniciar a programação em Python.
O documento resume as principais características e funcionalidades do MongoDB, um banco de dados não relacional, e como utilizá-lo junto com a linguagem Python. O documento discute como modelar e realizar consultas de dados no MongoDB usando Python e módulos como PyMongo e MongoEngine.
O documento discute as razões para aprender Python, incluindo sua história, características, onde é usado e por quem. Python é uma linguagem de programação popular, de código aberto e multiplataforma usada para aplicações web, desktop, ciência de dados e mais.
Java utiliza uma máquina virtual que traduz as aplicações para as chamadas do sistema operacional, permitindo que as aplicações rodem independentemente do sistema operacional. A máquina virtual Java (JVM) executa as aplicações Java e permite o desenvolvimento usando ferramentas como o compilador Javac e o kit de desenvolvimento JDK. O documento descreve também conceitos básicos de programação em Java como tipos primitivos, classes, métodos, fluxos de controle e orientação a objetos.
O documento resume as principais vantagens e funcionalidades do MongoDB, incluindo documentos flexíveis baseados em JSON, migrações dinâmicas de dados, agregações e map-reduce. Ele também fornece exemplos de como desenvolver aplicativos com MongoDB usando Python, Ruby e ORM's.
O documento fornece uma introdução ao framework Django, incluindo:
1) O que é Django e seus principais recursos como mapeador objeto-relacional e interface administrativa automática;
2) Como instalar Django;
3) Como criar um projeto Django com arquivos e diretórios padrão;
4) Como criar e configurar uma aplicação de notícias dentro do projeto com modelos, views, templates e URLs.
Similar to Minicurso de Django - Desenvolvimento ágil web com Django e Python (20)
2. Introdução ao Python
1. Sintaxe
2. Variáveis
3. Loops
4. Funções
5. Orientação a objetos
2 Tópicos abordados
Django e Projeto de Microblog
1. Criação de projetos
2. Criação de aplicações
3. Criação de classes
4. Relacionamento entre classes
5. Criação de urls
6. Criação de views
7. Criação de templates
3. 3
POR QUÊ USAR O DJANGO?
● Desenvolvimento ágil
● Orientado a objetos
● Fácil gerenciamento de Banco de dados
● Possui painel administrativo com diversas funções
● Possui uma comunidade colaborativa muito ativa
O que é Django? Por quê usar?
SITES QUE USAM DJANGO
Conjunto de ferramentas em Python para
agilizar o desenvolvimento web.
4. 4 Simplicidade do Python
public class OlaMundo {
public static void main(String[] args) {
System.out.println("Olá mundo");
}
}
print ('Olá Mundo!')
Java Python
5. 5 Sintaxe
if <condição>:
<bloco de código>
<bloco de código>
elif <condição>:
<bloco de código>
else:
<bloco de código>
if (condição) {
<bloco de código>;
}
else if (condição) {
<bloco de código>;
}
else {
<bloco de código>;
}
6. 6 Variáveis
numero = 123
decimal = 10.5
palavra = “Olá Mundo!”
booleano = True
● É uma posição na memória que
armazena um valor
● Não é preciso declarar o tipo
● É o conteúdo da variável
determina o seu tipo
7. 7 Condições
if numero == 0:
print(‘O número é zero’)
elif numero % 2 == 0:
print('Par')
else:
print('Impar')
if Se o número for igual a zero, informar que o
número é igual a zero.
elif Senão se o número tiver resto igual a zero, o
número é par.
else Caso contrário, o número é ímpar.
8. 8 Operadores
Aritiméticos Comparação Lógicos
Igual==
Diferente!=
Maior que>
Menor que<
Maior ou igual>=
Menor ou igual<=
Soma+
Subtração-
Multiplicação*
Divisão/
Eand
Ouor
Emin
Éis
Nãonot
if x <= 3 and x > 0:
x += 1
9. 9 Funções
def soma(x, y):
return x + y
def parametro_opcional(nome=None):
print(nome)
resultado = soma(2,5)
● Função é um bloco de código que
realiza uma tarefa específica.
● Evita repetição:
○ Podemos criar uma única
função e chamar ela diversas
vezes no código.
● É definida por “def”;
● Uma função pode:
○ Receber parametros
○ Retornar valores
10. São conjuntos ordenados de
valores, onde cada valor é
identificado por um índice.
O índice é o número relativo à
posição do dado que queremos
acessar:
10 Listas
# Declaração
lista_vazia = list()
numeros = [2, 1, 3, 5, 4];
palavras = ["abc", "b", "cachorro"]
lista_mista = ['gato', 'bola', 1997, 2000];
# Acesso
print (palavras[2]) # cachorro
2 1 3 5 4
[1] [2] [3] [4] [5]
11. ● Listas utilizam inteiros como
índices.
● Dicionários utilizam qualquer tipo
de dados como índice.
○ dicionario[“indice”]
● Um dicionário vazio é declarado
com o uso de dict( ) ou { }.
11 Dicionários
# Declaração
dict_vazio = dict()
pessoa = {'nome': 'Maria', 'idade': 7}
# Acesso
print (pessoa['nome'])
CHAVE VALOR
12. 12 Estruturas de repetição
x = 0
while x < 10:
print (x)
x += 1 # Aumenta de 1 em 1
nomes = ['João', 'Maria', 'Bruno']
for nome in nomes:
print(nome)
# Imprime de 0,...9
for x in range(10):
print(x)
For While
13. Estratégia que visa facilitar a
utilização de conceitos da vida real
na programação, utilizando classes
para descrever estes conceitos e
objetos para representá-los.
Não existe uma variável do tipo “pessoa”. Como
representamos pessoas no código?
13 Orientação a Objetos com Python
Python
14. 14 Orientação a objetos com Python
maria = Pessoa()
maria.nome = 'Maria'
maria.idade = 20
maria.falar_nome()
class Pessoa(object):
nome = "" # características
idade = 0 # características
def falar_nome(self): # comportamento
print (self.nome)
Classe Objeto
15. As classes são as instruções de como
deve ser um objeto.
● atributos da classe definem suas
características
● métodos definem o
comportamento da classe.
15 Classes
class Jedi(object):
sabreDeLuz = "Verde"
def sacarSabreDeLuz(self):
print ("Pssshhew")
ATRIBUTO
MÉTODO
16. Um objeto é uma entidade criada de
acordo com a classe, possuindo as
informações que desejarmos, podendo
ser replicado sempre que necessário.
16 Objetos
obiWan = Jedi()
obiWan.corDoSabre = “Azul”
yoda = Jedi()
yoda.corDoSabre = “Verde”
obiWan.sacarSabreDeLuz()
yoda.sacarSabreDeLuz()
17. 17 Herança
class Cao(object):
def latir(self):
print ("Au!")
class Poodle(Cao):
corDoPelo = ""
class Viralata(Cao):
pedigree = False
CÃO
Classe genérica que serve como base
18. Uma classe possui como atributo um objeto de outra classe
18 Agregação
class Aluno(object):
turma = None
class Turma(object):
nome = '201B'
turma = Turma()
aluno = Aluno()
aluno.turma = turma
19. Escreva um programa.py que contem uma classe Pessoa com as seguintes informações:
nome, ano de nascimento, endereço. Além disso, deve conter um método para obter idade
(idade = ano_nascimento - ano_atual).
Em seguida, crie uma classe funcionário que herda a classe pessoa e acrescenta as seguintes
informações: salario e cargo. Por fim, construa um funcionário abaixo:
19 Exercício de Python
Nome Ano
nascimento
Endereço Salario
João Silva 1985 Santa Maria R$ 3.000
21. NO WINDOWS
1. Vá até o site oficial do Python: www.python.org
2. Baixe o installer da versão 2.7 de acordo com seu SO
(64 ou 32 bits)
3. Abra o Prompt de Comando e digite:
21
NO LINUX
1. Abra o console e digite:
pip install django
sudo apt-get install python-pip
sudo pip install django
Instalando o Django
22. Microblog onde os usuários
podem publicar pequenos
textos, seguir pessoas e
curtir textos de outras
pessoas.
22 Projeto Microblog
Diagrama de Classes Casos de Uso
Projeto: https://github.com/guilegarcia/Microblog
23. Um projeto Django é feito por diversas
aplicações (apps).
Devido a natureza modular do Django,
um app pode ser transferido de um
projeto a outro.
23 Estrutura do Projeto
Microblog
Autor
Posts
PROJETO
APPs
24. Páginas: (possuem entrada no urls.py, views.py e um template HTML )
● Timeline
● Quem seguir
● Criar autor
● Criar post
● Login
Links: (possuem entrada somente no urls.py e views.py)
● Sair
● Excluir conta
● Seguir usuário
● Unfollow
● Curtir post
24 Conteúdo do Projeto
25. Vamos criar o nosso projeto chamado
Microblog, digitando no console:
25 Criando o projeto
django-admin startproject Microblog
26. 26 Estrutura do projeto
__init__.py
settings.py (configurações do projeto)
urls.py (geralmente importa as urls das aplicações)
wsgi.py
Microblog
Microblog
27. Vamos criar a aplicação “posts” do nosso
projeto Microblog.
27 Criando a aplicação “posts”
python manage.py startapp posts
29. Crie as aplicações utilizando o terminal e
as adicione em INSTALLED_APPS no
/Microblog/settings.py
29 Criando as aplicações
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'posts',
)
30. 30 Arquitetura do Django
(
(r’^contato/$’,
‘blog.contato’),
(r’^posts/$’,
‘blog.posts’),
)
urls.py
{% extends ‘base.html’%}
{% block content %}
{% for p in posts %}
<h1>{{p.title}}</h1>
<p>{{p.content}}</p>
{% endfor %}
{% endblock %}
posts.html
def posts(request):
p=Post.objects.all()
return render(request,
‘posts.html’.
{‘posts’:p}
)
views.py
class Post(Model):
title=CharField(max_lenght=50)
content=TextField()
date=Datefield()
cat=ForeignKey(Category)
autor=CharField(max_lenght=50)
class Category(Model):
name=CharField()
models.py
Cliente
Request
Response
31. ● São classes que define os dados que
serão trabalhados na aplicação.
● Cada classe é uma tabela no banco
de dados
● Classes importam de models.Model
● Possui diferentes tipos de atributos
Nosso projeto tem duas Classes: Autor e Post
31 Modelos /app/models.py
from django.db import models
class Pessoa(models.Model):
nome =
models.CharField(max_length=30)
endereco = models.TextField()
email = models.EmailField()
33. 1. Herança
2. Many-to-one (Muitos para um)
3. Many-to-many (Muitos para Muitos)
4. One-to-one (Um para um)
33 Relacionamentos entre classes Django
34. 34 Relacionamentos entre classes - Herança
from django.db import models
class Pessoa(models.Model):
nome = models.CharField(max_length=2)
class Funcionario(Pessoa):
pass
class Professor(Pessoa):
pass
35. 35 Relacionamento - Many-to-one(ForeignKey)
class Banda(models.Model):
pass
class Musico(models.Model):
banda = models.ForeignKey(Banda)
36. 36 Relacionamentos entre classes - Many-to-many
class Autor(models.Model):
nome = models.CharField(max_length=30)
data_nascimento = models.DateField()
class Artigo(models.Model):
titulo = models.CharField(max_length=100)
autores = models.ManyToManyField(Autor)
37. 37 Relacionamentos entre classes - One-to-one (é um)
class Local(models.Model):
nome = models.CharField(max_length=50)
endereco = models.CharField(max_length=80)
class Restaurante(models.Model):
local = models.OneToOneField(Local,primary_key=True,)
serve_pizza = models.BooleanField(default=False)
38. 38 Criando a classe “Post”
from django.db import models
from autores.models import Autor
class Post(models.Model):
texto = models.TextField(max_length=140) #max_lenght define o máximo de caracteres do
campo
likes = models.IntegerField(default=0)
autor = models.ForeignKey(Autor, null=True, blank=True)
data_hora = models.DateTimeField(auto_now_add=True) #auto_now_add adiciona a hora atual
/posts/models.py
39. ● Utilizaremos o usuário padrão para
criar Autor
● Django fornece um usuário padrão
que pode ser utilizado na aplicação.
● A classe User será utilizada na
autenticação dos usuários
● É possível estender o User e
acrescentar informações
(AbstractUser)
39 Usuário padrão do Django
Referência: https://docs.djangoproject.com/pt-br/1.10/ref/contrib/auth/#user-model
40. Crie a aplicação “autores” e a classe “Autor” contendo o campo:
● biografia (models.TextField)
● Lembre-se de add a nova aplicação em settings.py/INSTALLED_APPS
40 Exercício - Aplicação e classe para autores
41. 41 Criando a classe “Autor”
from django.db import models
from django.contrib.auth.models import AbstractUser
class Autor(AbstractUser): # Herda do usuário comum do Django
seguindo = models.ManyToManyField('self', null=True, blank=True)
biografia = models.TextField(blank=True, null=True)
/autores/models.py
42. 42 Adicionar Autor no Settings.py
# Usuário padrão
AUTH_USER_MODEL = 'autores.Autor'
Adicionar o Autor como usuário padrão
do Django em:
/Microblog/Microblog/settings.py
43. 43 Atualizando o Banco de Dados
# Verifica quais atualizações são necessárias
python manage.py makemigrations
# Aplica as atualizações no banco de dados
python manage.py migrate
Após modificações no models.py deve se utilizar os comandos abaixo no terminal,
fazendo com que o Django atualize o Banco de Dados.
45. Criar uma url e uma views.py na aplicação “posts”
45 Criar a primeira views.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Olá mundo")
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
]
46. Uma URL pode apontar para uma função ou classe. A urls.py da parte principal do
projeto geralmente inclui as urls das aplicações.
46 Mapeamento de URLs
from django.conf.urls import url
from models.views import criar_autor
urlpatterns = [
url(r'^criar-autor/$', criar_autor, name='criar_autor'),
]
• Nome da requisição no navegador.
Ex: www.site.com/criar-autor/
• O r na frente da url significa que a expressão
deve ser tratada como somente texto.
• A requisição deve executar a função
determinada aqui.
• Nome utilizado para este caminho de URL
quando chamado através de variável.
Ex: {% url ‘criar_autor’ %}
47. ● Para exibir as informações na web é
preciso do HTML.
● O HTML é estático, não é possível
criar variáveis, listar objetos, etc.
● Para isso o Django disponibiliza a
linguagem de templates.
47 HTML <!DOCTYPE HTML>
<html lang="pt-br">
<head>
<title>TÍTULO</title>
</head>
<body>
<header>
<nav>
<ul>
<li>Menu</li>
</ul>
</nav>
</header>
<footer>
<p>RODAPÉ</p>
</footer>
</body>
</html>
48. O templates do Django adicionar algumas
funcionalidades ao HTML estático da
aplicação.
Exemplo:
● Exibir variáveis;
● Imprimir listas (for)
● Criar condições (if, else)
48 Templates Django
49. Uma variável emite um valor a partir do
contexto, que é um objeto dicionário que
mapeia chaves para valores.
{“chave”:”valor”}
{{ variáveis }}
49 Templates Django - Variáveis
<!DOCTYPE html>
<html>
<body>
<p>Meu nome é {{ nome }} e minha idade
{{ idade }}.</p>
</body>
</html>
50. As tags fornecem lógica no processo de
renderização das páginas HTML.
Tags são definidas por {% tag %}
50 Templates Django - Tags
<!DOCTYPE html>
<html>
<body>
{% if numero > 0 %}
<p>Positivo</p>
{% else %}
<p>Negativo</p>
{% endif %}
</body>
</html>
51. 51 Templates Django - Lista de Tags
https://docs.djangoproject.com/pt-br/1.10/ref/templates/builtins/#ref-templates-builtins-tags
<!DOCTYPE html>
<html>
<body>
{% for autor in lista_autores %}
<p>{{ autor.nome }}</p>
{% empty %}
<p>Não há autores.</p>
{% endfor %}
</body>
</html>
{% for %} imprime os itens de uma lista
{% url 'nome_da_url' %} imprime a url
{% now 'd/m/Y H:i' %} imprime a data e
hora atual
52. Servem para transformar os valores de
variáveis e tags dentro do html.
Usa-se uma barra: | filtro
{{ variavel | filtro }}
52 Templates Django - Filtros
53. 53 Templates Django - Lista de Filtros
<!DOCTYPE html>
<html>
<body>
{{ minha_data|date:"d-m-Y" }} {# 15/11/2016 #}
{{ variavel|default_if_none:"Em Branco" }}
{{ variavel|title }} {# Título Com Maiúscula #}
{{ variavel_lista|first }} {# Primeiro item da lista #}
</body>
</html>
https://docs.djangoproject.com/pt-br/1.10/ref/templates/builtins/#ref-templates-builtins-filters
55. Salve as pastas /css/, /js/ e /fonts/ na
pasta:
/Microblog/static/
55 Importar arquivos CSS e JS para o projeto
# Static files (CSS, JavaScript, Images)
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static/'),
)
https://github.com/guilegarcia/Microblog/tree/mast
er/static
56. Salve a pasta /templates/ na pasta:
/Microblog/
Adicione dentro de [] em ‘DIRS’:
os.path.join(BASE_DIR, 'templates')
56 Importar arquivos .html do projeto
TEMPLATES = [
'DIRS': [os.path.join(BASE_DIR, 'templates')]
]
https://github.com/guilegarcia/Microblog/tree/mast
er/templates
57. Servem para o envio de informações do
cliente para o servidor. Usados em
cadastros, logins, pesquisas, etc.
57 Formulários
Login
Senha
ENTRAR
*******************
usuario
58. ● Django da pronto os métodos login()
e logout()
○ Precisamos criar as urls e o HTML.
● @login_required
● request.user
58 Autenticação do usuário
61. 61 Settings.py
# Autentificacao do usuario
LOGIN_URL = "/login/"
LOGOUT_URL = "/sair/"
LOGIN_REDIRECT_URL = "/index/"
É preciso adicionar o usuário padrão (que
será utilizado para autenticação) e as urls
para login em /projeto/settings.py
62. Para obter o usuário logado no sistema
usa-se o request.user
Ao chamar a função login(request,
user), definida no método logar(), o
usuário é inserido na sessão. Para obter
o usuário que está na sessão usa-se o
request.user
62 Obter usuário logado
from django.contrib.auth.decorators import
login_required
from django.shortcuts import render
@login_required
def autor(request):
autor = request.user
return render(request, 'autor.html', {'autor':
autor})
63. Usa-se o @login_required para garantir
que apenas os usuários logados
acessem um determinado controller
(views.py).
Caso o usuário não esteja logado, o
Django irá redirecionar para a página de
login especificada em settings.py.
63 @login_required
from django.contrib.auth.decorators import
login_required
from django.shortcuts import render
@login_required
def autores(request):
autores = Autor.objects.all()
return render(request, 'autores.html',
{'autores': autores})
64. 1. Crie um arquivo urls.py na pasta
das aplicações posts e autores
2. Importe as urls das aplicações
posts e autores na urls.py
64 Importando as URLs das aplicações
urlpatterns = [
url(r'^autores/', include('autores.urls')), # /autores/**
url(r'^posts/', include('posts.urls')), # /posts/**
]
65. 65 Consultas no banco de dados
# Busca todos autores
autores = Autor.objects.all()
# Busca um autor
autor = Autor.objects.get(id=1)
# Autores que se chamam “João”
autores_nome = Autor.objects.filter(first_name='João')
# Todos os posts ordenados por data e hora de criação
posts_ordenados = Post.objects.all().order_by('data_hora')
66. Crie uma função para listar os autores. Passos:
1. Criar função “autores” em /autores/views.py
a. Buscar todos autores no banco de dados
b. Enviar esse autor para o template “autores.html” usando render()
2. Criar a /autores/urls.py r'^$' para a função
3. Listar os autores no /templates/autores.html usando {% for
%}
66 Exercício: Listar autores
67. 67 Listar autores
from django.conf.urls import url
from autores import views
urlpatterns = [
url(r'^$', views.autores, name='autores'),
]
from autores.models import Autor
from django.shortcuts import render
def autores(request):
autores = Autor.objects.all()
return render(request, 'autores.html',
{'autores': autores})
68. 68 Timeline (listar posts)
from django.conf.urls import url
from posts.views import index
urlpatterns = [
url(r'^index/$', index, name='index'),
]
from django.shortcuts import redirect
from .models import Post
from django.db.models import Q
from django.contrib.auth.decorators import login_required
@login_required
def index(request):
autor = request.user
if autor.seguindo: # None não funciona no filter
# Q = OR (sql) __in (verifica uma lista)
posts =
Post.objects.filter(Q(autor__in=autor.seguindo.all()
) | Q(autor=autor))
# .all() busca todos itens que estão seguindo
else:
posts = None
return render(request, 'index.html', {'posts':
posts})
69. 69 Acessar autor
from django.conf.urls import url
from autores import views
urlpatterns = [
url(r'^(?P<id>d+)/$', views.autor,
name='autor'),
]
from django.shortcuts import render,
get_object_or_404
from autores.models import Autor
def autor(request, id=None):
autor = get_object_or_404(Autor, id=id)
posts = Post.objects.filter(autor=autor)
return render(request, 'autor.html',
{'autor': autor, 'posts': posts})
70. 70 Excluir autor
from django.conf.urls import url
from autores import views
urlpatterns = [
url(r'^excluir/(?P<id>d+)/$',
views.excluir_autor, name='excluir_autor'),
]
from django.shortcuts import render,
get_object_or_404
from autores.models import Autor
def excluir_autor(request, id=None):
"""
Recebe o id do Autor e exclui
"""
autor = get_object_or_404(Autor, id=id)
autor.delete()
return redirect('index')
71. 71 Seguir autor
from django.conf.urls import url
from autores import views
urlpatterns = [
url(r'^seguir/(?P<id>d+)/$',
views.seguir, name='seguir_autor'),
]
from django.shortcuts import redirect
from autores.models import Autor
def seguir(request, id=None):
"""
Recebe o id do usuário que irá seguir
"""
autor_seguir = Autor.objects.get(id=id)
autor = request.user
autor.seguindo.add(autor_seguir) # .add
adiciona na lista de seguindo
autor.save()
return redirect('autores')
72. 72 Unfollow autor
from django.conf.urls import url
from autores import views
urlpatterns = [
url(r'^unfollow/(?P<id>d+)/$',
views.unfollow, name='unfollow'),
]
from django.shortcuts import redirect
from autores.models import Autor
def unfollow(request, id=None):
"""
Recebe o id do usuário que irá seguir
"""
autor_unfollow = Autor.objects.get(id=id)
autor = request.user
autor.seguindo.remove(autor_unfollow) #
.remove remove da lista de seguindo
autor.save()
return redirect('autores')
73. 73 Curtir post
from django.conf.urls import url
from autores import views
urlpatterns = [
url(r'^curtir/(?P<id>d+)/$',
views.curtir, name='curtir_post'),
]
from django.shortcuts import render, get_object_or_404
from .models import Post
@login_required
def curtir(request, id=None):
post = get_object_or_404(Post, id=id)
post.likes += 1
post.save()
# request.META.get('HTTP_REFERER') mostra
de onde veio a requisição (index ou autor)
return
redirect(request.META.get('HTTP_REFERER'))
74. É uma alternativa para implementar
Views como classes ao em vez de
funções. O Django disponibiliza diversas
classes prontas que podem ser adaptadas.
Exemplos:
● CreateView
● UpdateView
74 Forms do Django - Class-based views
75. 75 Resultado - CreateView Autor
from django.conf.urls import url
from autores.views import AutorCreate
urlpatterns = [
url(r'^criar-autor/$', CriarAutor.as_view(),
name='criar_autor'),
]
76. 76 Resultado - CreateView Autor
from django.views.generic.edit import CreateView
from autores.models import Autor
class CriarAutor(CreateView):
model = Autor
fields = ['first_name', 'last_name', 'email', 'username', 'password']
template_name = 'criar-autor.html'
success_url = '.'
def form_valid(self, form):
usuario = form.save(commit=False)
usuario.set_password(form.cleaned_data['password'])
usuario.save()
return super(CriarAutor, self).form_valid(form)
77. Crie:
1. URL para o CriarPost (CreateView) em /posts/urls.py
2. Crie a classe CriarPost(CreateView) para criar os posts em /posts/views.py.
a. Em fields adicione apenas ‘texto’ e ‘autor’
Obs: É preciso criar o arquivo urls.py
77 Exercício - Criar Post
78. 78 Resultado - CreateView Post
from django.views.generic.edit import CreateView
class CriarPost(CreateView):
model = Post
fields = ['texto', 'autor']
template_name = 'criar-post.html'
success_url = '.'
79. 79 Resultado - CreateView Post
from django.conf.urls import url
from .views import CriarPost
urlpatterns = [
url(r'^criar/$', CriarPost.as_view(), name='criar_autor'),
]