SlideShare uma empresa Scribd logo
De Zero à Web 
com Python e Django 
Um guia para o empreendedorismo digital
Osvaldo Santana Neto 
• https://osantana.me 
• Python e Django 
• Empreendedor em "modo de 
espera” 
• Side Projects 
• Bootstrapping 
• Titans Solutions 
• Empresa de SP 
• Trabalho Remoto
Empreendedorismo 
Se é difícil de soletrar é difícil de fazer?
Fui enganado! Cadê o 
Python e o Django? 
Calma... Calma... A gente chega lá...
Como empreender?
Você precisará de... 
• Uma idéia válida para 
executar 
• Algum dinheiro (~R$100) 
• E tempo para trabalhar no 
projeto
Ideias 
• Quando esbarrar em um problema 
anote em um papel 
• Revisite o problema proponha 
soluções (ideias) 
• Faça uma planilha para classificar 
as ideias 
• Escolha uma e valide (Business 
Model Canvas e entrevistas) 
• Ideias simples são mais poderosas 
• Não se distraia com ideias novas. 
Anote-as.
Ideia & Execução 
• Ideias são um multiplicador de 
valor da execução 
• A execução é que tem valor 
• Ideia boa e bem executada é 
o melhor cenário 
• http://sivers.org/multiply 
• Validação de ideias 
• Conheça o mercado 
• Tenha "paixão"
Como conseguir 
dinheiro? 
Inverta o raciocínio: O que eu consigo 
fazer com o dinheiro que tenho?
Como conseguir 
tempo? 
Inverta o raciocínio: O que eu consigo 
fazer com o tempo que tenho?
Quem quer faz. 
Quem não quer inventa 
desculpas
Palavras Chaves 
• Bootstrapping 
• Side-Project 
• Passive Income 
• Cuidado com picaretagem! 
• Minimum Viable Product 
• Cuidado com: 
• Eventos de startup, busca 
por investimento/ 
financiamento, …
Execução Passo a Passo 
• Aprenda Python & Django  
• Escolha um nome 
• Registre um domínio (~R$30) 
• Escolha uma hospedagem 
(grátis~$9/mês) 
• Quickstartup (grátis~$49) 
• Tráfego (grátis~infinito) 
• Feedback
Python & Django 
• https://osantana.me/pydjango 
• Python - Linguagem 
• Guido van Rossum 
• Lançada em 1989 
• Monty Python 
• Django - Framework Web 
• Jacob K. Moss & Adrian Holovaty 
• Lançado em 2003 
• Django Reinhardt
Python 
• Linguagem de uso geral 
• Web, Mobile, Desktop, … 
• Multiplataforma 
• Unix, Linux, OS X, e até a porcaria do Windows 
• OOP 
• Suporte a código procedural e funcional 
• Interpretada (com compilação transparente de bytecode) 
• Linguagem aberta / Open Source
#!/usr/bin/env python3 
# coding: utf-8 
# programa1.py - Primeiro programa 
""" 
Importa o módulo random e sorteia 
um número inteiro entre 1 e 100 
""" 
import random 
numero = random.randint(1, 100) 
escolha = 0 
tentativas = 0 
print("Acerte o número que sorteei com o menor número de tentativas.") 
while escolha != numero: 
escolha = int(input("Digite um número inteiro entre 1 e 100: ")) 
tentativas += 1 
if escolha < numero: 
print("O número %s é menor que o sorteado." % (escolha,)) 
elif escolha > numero: 
print("O número %s é maior que o sorteado." % (escolha,)) 
print("Parabéns! Você acertou o número com %s tentativas." % (tentativas,))
#!/usr/bin/env python3 
# coding: utf-8 
class No(object): 
def __init__(self, questao=None, sim=None, nao=None): 
self._sim = sim 
self._nao = nao 
self._questao = questao 
def start(self): 
if self.ask("Esse animal {}".format(self._questao), sn=True): 
self._sim = self._sim.start() 
else: 
self._nao = self._nao.start() 
return self 
def ask(self, questao, sn=False): 
resposta = "" 
while resposta == "": 
resposta = input("{}? {}".format(questao, "(s/n) " if sn else "")) 
return resposta if not sn else (resposta[0].lower() == "s")
class Animal(No): 
def __init__(self, nome): 
super(Animal, self).__init__(nome) 
self._nome = nome 
def start(self): 
if not self.ask("É um(a) {}".format(self._nome), sn=True): 
animal = self.ask("Qual é o animal") 
questao = self.ask("O que um {} faz que {} não faz".format(animal, self._nome)) 
return No(questao, Animal(animal), self) 
print("Acertei!") 
return self 
def main(): 
raiz = No("vive na água", Animal("baleia"), Animal("macaco")) 
while True: 
raiz.start() 
if not raiz.ask("Jogar novamente", sn=True): 
break 
if __name__ == '__main__': 
main()
$ python3 animais.py 
Esse animal vive na água? (s/n) n 
É um(a) macaco? (s/n) n 
Qual é o animal? cachorro 
O que um cachorro faz que macaco não faz? é domesticado 
Jogar novamente? (s/n) s 
Esse animal vive na água? (s/n) n 
Esse animal é domesticado? (s/n) s 
É um(a) cachorro? (s/n) s 
Acertei!
Django 
• Framework Web Ágil 
• DRY - Don’t Repeat Yourself 
• MVC ou MTV (Model/View/Controller, Model/Template/ 
View) 
• ORM ➡️ Banco de Dados Relacional 
• Postgres, MySQL, Oracle, … 
• Instagram, Pinterest, Disqus, …
# coding: utf-8 
from django.db import models 
from django.core.urlresolvers import reverse 
from django.utils.translation import ugettext_lazy as _ 
CONTACT_STATUS = ( 
("N", _("New")), 
("O", _("Ongoing")), 
("R", _("Resolved")), 
("C", _("Closed")), 
("I", _("Invalid")), 
) 
class Contact(models.Model): 
status = models.CharField(_("status"), max_length=1, 
choices=CONTACT_STATUS, default="N") 
created_at = models.DateTimeField(_("created at"), auto_now_add=True) 
updated_at = models.DateTimeField(_("updated at"), auto_now=True) 
name = models.CharField(_("name"), max_length=255) 
email = models.EmailField(_("email"), max_length=255) 
phone = models.CharField(_("phone"), max_length=100, blank=True) 
message = models.TextField(_("message")) 
@property 
def admin_url(self): 
return reverse("admin:contacts_contact_change", args=(self.pk,))
# coding: utf-8 
from django.contrib import admin 
from .models import Contact 
class ContactAdmin(admin.ModelAdmin): 
list_display = ('updated_at', 'name', 'email', 'phone', 'status') 
list_display_links = ('updated_at', 'name', 'email', 'phone') 
list_editable = ("status",) 
list_filter = ('status',) 
search_fields = ('name', 'email') 
ordering = ("-updated_at",) 
admin.site.register(Contact, ContactAdmin)
Interface de Admin
Interface de Admin
Quickstartup 
Em breve...
Quickstartup
Quickstartup
Quickstartup
Ação! 
• Escolha um nome (domínio livre) 
• Registre um domínio 
• http://registro.br/ ou 
https://gandi.net 
• Escolha uma hospedagem 
• Amazon AWS (grátis 1 ano) 
• Heroku (plano básico grátis) 
• DigitalOcean ($5/mês) 
• http://j.mp/vpsdigi 
• Outras alternativas mais baratas!
Marketing 
• Launch 
• Feedback 
• Analytics 
• Interação 
• Iterate & Pivot 
• Growth Hacking 
• Sales Pipeline (B2B)
Fail Fast, Fail Cheap 
Não deu certo? Fecha a parte pra outra.
De Zero à Web com Python e Django

Mais conteúdo relacionado

PDF
Desenvolvimento web com python e django
PDF
TDD com Python (Completo)
PDF
Tutorial Django + Python
PDF
Minicurso de Django - Desenvolvimento ágil web com Django e Python
PDF
Django: Desenvolvendo uma aplicação web em minutos
KEY
Django - Desenvolvimento web ágil com Python
PPT
Mini curso de django
ODP
Desenvolvendo aplicações web com python e web2py
Desenvolvimento web com python e django
TDD com Python (Completo)
Tutorial Django + Python
Minicurso de Django - Desenvolvimento ágil web com Django e Python
Django: Desenvolvendo uma aplicação web em minutos
Django - Desenvolvimento web ágil com Python
Mini curso de django
Desenvolvendo aplicações web com python e web2py

Mais procurados (20)

PDF
Python na Web
ZIP
Python e Django na Globo.com
PDF
Tdd em django sem desculpas versao final
PDF
Desenvolvendo mvp com python
PPTX
Palestra Apresentando Python e Suas Aplicações
PPSX
Conhecendo o Django
PDF
Treinamento Básico de Django
PDF
Programando para web com python - Introdução a Python
KEY
Python, a arma secreta do Google
PDF
Django: desenvolvendo aplicações web de maneira simples e rápida!
PDF
Desenvolvimento de aplicações embarcadas utilizando Python
ODP
Matando o Java e Mostrando o Python
ODP
Python para Programadores
PDF
Java primeiros-passos
PDF
Curso básico de Algoritmos com Python
ODP
PDF
Postgresql + Python = Power!
PDF
Python WTFAQ?
PDF
Canivete python
PDF
Node.JS - Campus Party Brasil 2011
Python na Web
Python e Django na Globo.com
Tdd em django sem desculpas versao final
Desenvolvendo mvp com python
Palestra Apresentando Python e Suas Aplicações
Conhecendo o Django
Treinamento Básico de Django
Programando para web com python - Introdução a Python
Python, a arma secreta do Google
Django: desenvolvendo aplicações web de maneira simples e rápida!
Desenvolvimento de aplicações embarcadas utilizando Python
Matando o Java e Mostrando o Python
Python para Programadores
Java primeiros-passos
Curso básico de Algoritmos com Python
Postgresql + Python = Power!
Python WTFAQ?
Canivete python
Node.JS - Campus Party Brasil 2011
Anúncio

Destaque (15)

PDF
Curso de Python e Django
PDF
Python e django na prática
PDF
Aprendendo python
ODP
Django - Lightning Talk - We Web Conf
PDF
Introdução ao Python com Django
ODP
Desenvolvimento web simples com Python e DJango
PDF
SUAP: Caso de Sucesso utilizando Python e Django no Serviço Público Federal
KEY
Python 06
PDF
Introdução à linguagem Python
PDF
Testes, deploy e integração continua com Python e Django
PDF
Programando com Python
PDF
Aprendendo python 2a edição
PDF
Python - Programando em alto nível
PDF
Extraindo dados públicos na marra com Python
PDF
Python - Guia de bolso
Curso de Python e Django
Python e django na prática
Aprendendo python
Django - Lightning Talk - We Web Conf
Introdução ao Python com Django
Desenvolvimento web simples com Python e DJango
SUAP: Caso de Sucesso utilizando Python e Django no Serviço Público Federal
Python 06
Introdução à linguagem Python
Testes, deploy e integração continua com Python e Django
Programando com Python
Aprendendo python 2a edição
Python - Programando em alto nível
Extraindo dados públicos na marra com Python
Python - Guia de bolso
Anúncio

Semelhante a De Zero à Web com Python e Django (20)

PDF
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
PPTX
Introdução a linguagem Python
PDF
Cacheamento Lado Servidor
ODP
O Prazer De Trabalhar Com Python
PDF
Boas práticas no desenvolvimento de software
PDF
O que você NÃO aprendeu sobre Programação Orientada a Objetos
PDF
[MTC 2021] Conversa sobre shift left - Douglas Cardoso
PDF
JavaScript - A Linguagem
ZIP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
PPT
Python No Terra (2006-12-21)
KEY
Programação Orientada a Testes
PPTX
Javascript para CSharpers 4 - POO
PPTX
OmbrosDeGigantes-TDC2014
KEY
Testes Automatizados e o iOS
PDF
POG nunca mais - SOLISC
PDF
Introducao ao python - Luciana Mota
PDF
(A06) LabMM3 - JavaScript
KEY
Python MongoDB no MongoSP
PPTX
Como ser programador durante o dia e mesmo assim dormir bem à noite
PDF
Python: Iteraveis, geradores etc
"Se tornando um Desenvolvedor Java NINJA" - Semana Integrada da PUC Campinas ...
Introdução a linguagem Python
Cacheamento Lado Servidor
O Prazer De Trabalhar Com Python
Boas práticas no desenvolvimento de software
O que você NÃO aprendeu sobre Programação Orientada a Objetos
[MTC 2021] Conversa sobre shift left - Douglas Cardoso
JavaScript - A Linguagem
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Python No Terra (2006-12-21)
Programação Orientada a Testes
Javascript para CSharpers 4 - POO
OmbrosDeGigantes-TDC2014
Testes Automatizados e o iOS
POG nunca mais - SOLISC
Introducao ao python - Luciana Mota
(A06) LabMM3 - JavaScript
Python MongoDB no MongoSP
Como ser programador durante o dia e mesmo assim dormir bem à noite
Python: Iteraveis, geradores etc

Mais de Osvaldo Santana Neto (20)

PDF
Basic Brainf*ck
PPTX
Contruindo um Framework Web de Brinquedo só com Python
PPTX
A Web é uma API
PDF
Dave Thomas - Agile is Dead (GOTO 2015)
PDF
Olist Architecture v2.0
PDF
Advanced Brainf*ck
PDF
Corrigindo Bugs no CPython
PPTX
Como funciona um time remoto de desenvolvimento - Caipyra 2018
PPTX
Escalando times através do trabalho remoto
PDF
Plataforma distribuída de Microserviços ou, como a Olist funciona
PDF
Real Life Hackers @ PechaKucha 20x20
ODP
Entendiendo Unicode (Facundo Batista)
PDF
Como me tornei um empreendedor pythonista
PDF
TDD com Python
PDF
Matando (ou quase) Unicode(De|En)codeErrors (lightning talk)
PDF
Ludeos - Venda seu conteúdo online (how it works)
PDF
App Engine: aplicações escaláveis em poucas horas
DOC
Programação RAD com Python
PPT
Desenvolvimento RAD com Python (Fenasoft)
PPT
Curso Python for S60
Basic Brainf*ck
Contruindo um Framework Web de Brinquedo só com Python
A Web é uma API
Dave Thomas - Agile is Dead (GOTO 2015)
Olist Architecture v2.0
Advanced Brainf*ck
Corrigindo Bugs no CPython
Como funciona um time remoto de desenvolvimento - Caipyra 2018
Escalando times através do trabalho remoto
Plataforma distribuída de Microserviços ou, como a Olist funciona
Real Life Hackers @ PechaKucha 20x20
Entendiendo Unicode (Facundo Batista)
Como me tornei um empreendedor pythonista
TDD com Python
Matando (ou quase) Unicode(De|En)codeErrors (lightning talk)
Ludeos - Venda seu conteúdo online (how it works)
App Engine: aplicações escaláveis em poucas horas
Programação RAD com Python
Desenvolvimento RAD com Python (Fenasoft)
Curso Python for S60

Último (10)

PDF
Meios Digitais e o Profissional do Futuro.pdf
PPTX
Inteligência Artificial no Cotidiano: usos, riscos e possibilidades
PDF
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
PDF
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
PDF
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
PDF
Cruz de Cristo. Jesus e o seu amor incomparavel
PDF
CORPO, ALMA E ESPÍRITO cura inteiror.pdf
PDF
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
PPTX
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
PPTX
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx
Meios Digitais e o Profissional do Futuro.pdf
Inteligência Artificial no Cotidiano: usos, riscos e possibilidades
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
A teoria como arma da luta_ unidade, luta e cultura no pensamento político de...
Apostila_de_Laboratorio_de_Quimica_Inorg.pdf
Cruz de Cristo. Jesus e o seu amor incomparavel
CORPO, ALMA E ESPÍRITO cura inteiror.pdf
A sua pontuação aumenta ao escolher uma categoria, preencher uma descrição lo...
Fundamentos do Desenvolvimento Web. Fundamentos do Desenvolvimento Web.Fundam...
Classifirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrcação_IPAQ.pptx

De Zero à Web com Python e Django

  • 1. De Zero à Web com Python e Django Um guia para o empreendedorismo digital
  • 2. Osvaldo Santana Neto • https://osantana.me • Python e Django • Empreendedor em "modo de espera” • Side Projects • Bootstrapping • Titans Solutions • Empresa de SP • Trabalho Remoto
  • 3. Empreendedorismo Se é difícil de soletrar é difícil de fazer?
  • 4. Fui enganado! Cadê o Python e o Django? Calma... Calma... A gente chega lá...
  • 6. Você precisará de... • Uma idéia válida para executar • Algum dinheiro (~R$100) • E tempo para trabalhar no projeto
  • 7. Ideias • Quando esbarrar em um problema anote em um papel • Revisite o problema proponha soluções (ideias) • Faça uma planilha para classificar as ideias • Escolha uma e valide (Business Model Canvas e entrevistas) • Ideias simples são mais poderosas • Não se distraia com ideias novas. Anote-as.
  • 8. Ideia & Execução • Ideias são um multiplicador de valor da execução • A execução é que tem valor • Ideia boa e bem executada é o melhor cenário • http://sivers.org/multiply • Validação de ideias • Conheça o mercado • Tenha "paixão"
  • 9. Como conseguir dinheiro? Inverta o raciocínio: O que eu consigo fazer com o dinheiro que tenho?
  • 10. Como conseguir tempo? Inverta o raciocínio: O que eu consigo fazer com o tempo que tenho?
  • 11. Quem quer faz. Quem não quer inventa desculpas
  • 12. Palavras Chaves • Bootstrapping • Side-Project • Passive Income • Cuidado com picaretagem! • Minimum Viable Product • Cuidado com: • Eventos de startup, busca por investimento/ financiamento, …
  • 13. Execução Passo a Passo • Aprenda Python & Django  • Escolha um nome • Registre um domínio (~R$30) • Escolha uma hospedagem (grátis~$9/mês) • Quickstartup (grátis~$49) • Tráfego (grátis~infinito) • Feedback
  • 14. Python & Django • https://osantana.me/pydjango • Python - Linguagem • Guido van Rossum • Lançada em 1989 • Monty Python • Django - Framework Web • Jacob K. Moss & Adrian Holovaty • Lançado em 2003 • Django Reinhardt
  • 15. Python • Linguagem de uso geral • Web, Mobile, Desktop, … • Multiplataforma • Unix, Linux, OS X, e até a porcaria do Windows • OOP • Suporte a código procedural e funcional • Interpretada (com compilação transparente de bytecode) • Linguagem aberta / Open Source
  • 16. #!/usr/bin/env python3 # coding: utf-8 # programa1.py - Primeiro programa """ Importa o módulo random e sorteia um número inteiro entre 1 e 100 """ import random numero = random.randint(1, 100) escolha = 0 tentativas = 0 print("Acerte o número que sorteei com o menor número de tentativas.") while escolha != numero: escolha = int(input("Digite um número inteiro entre 1 e 100: ")) tentativas += 1 if escolha < numero: print("O número %s é menor que o sorteado." % (escolha,)) elif escolha > numero: print("O número %s é maior que o sorteado." % (escolha,)) print("Parabéns! Você acertou o número com %s tentativas." % (tentativas,))
  • 17. #!/usr/bin/env python3 # coding: utf-8 class No(object): def __init__(self, questao=None, sim=None, nao=None): self._sim = sim self._nao = nao self._questao = questao def start(self): if self.ask("Esse animal {}".format(self._questao), sn=True): self._sim = self._sim.start() else: self._nao = self._nao.start() return self def ask(self, questao, sn=False): resposta = "" while resposta == "": resposta = input("{}? {}".format(questao, "(s/n) " if sn else "")) return resposta if not sn else (resposta[0].lower() == "s")
  • 18. class Animal(No): def __init__(self, nome): super(Animal, self).__init__(nome) self._nome = nome def start(self): if not self.ask("É um(a) {}".format(self._nome), sn=True): animal = self.ask("Qual é o animal") questao = self.ask("O que um {} faz que {} não faz".format(animal, self._nome)) return No(questao, Animal(animal), self) print("Acertei!") return self def main(): raiz = No("vive na água", Animal("baleia"), Animal("macaco")) while True: raiz.start() if not raiz.ask("Jogar novamente", sn=True): break if __name__ == '__main__': main()
  • 19. $ python3 animais.py Esse animal vive na água? (s/n) n É um(a) macaco? (s/n) n Qual é o animal? cachorro O que um cachorro faz que macaco não faz? é domesticado Jogar novamente? (s/n) s Esse animal vive na água? (s/n) n Esse animal é domesticado? (s/n) s É um(a) cachorro? (s/n) s Acertei!
  • 20. Django • Framework Web Ágil • DRY - Don’t Repeat Yourself • MVC ou MTV (Model/View/Controller, Model/Template/ View) • ORM ➡️ Banco de Dados Relacional • Postgres, MySQL, Oracle, … • Instagram, Pinterest, Disqus, …
  • 21. # coding: utf-8 from django.db import models from django.core.urlresolvers import reverse from django.utils.translation import ugettext_lazy as _ CONTACT_STATUS = ( ("N", _("New")), ("O", _("Ongoing")), ("R", _("Resolved")), ("C", _("Closed")), ("I", _("Invalid")), ) class Contact(models.Model): status = models.CharField(_("status"), max_length=1, choices=CONTACT_STATUS, default="N") created_at = models.DateTimeField(_("created at"), auto_now_add=True) updated_at = models.DateTimeField(_("updated at"), auto_now=True) name = models.CharField(_("name"), max_length=255) email = models.EmailField(_("email"), max_length=255) phone = models.CharField(_("phone"), max_length=100, blank=True) message = models.TextField(_("message")) @property def admin_url(self): return reverse("admin:contacts_contact_change", args=(self.pk,))
  • 22. # coding: utf-8 from django.contrib import admin from .models import Contact class ContactAdmin(admin.ModelAdmin): list_display = ('updated_at', 'name', 'email', 'phone', 'status') list_display_links = ('updated_at', 'name', 'email', 'phone') list_editable = ("status",) list_filter = ('status',) search_fields = ('name', 'email') ordering = ("-updated_at",) admin.site.register(Contact, ContactAdmin)
  • 29. Ação! • Escolha um nome (domínio livre) • Registre um domínio • http://registro.br/ ou https://gandi.net • Escolha uma hospedagem • Amazon AWS (grátis 1 ano) • Heroku (plano básico grátis) • DigitalOcean ($5/mês) • http://j.mp/vpsdigi • Outras alternativas mais baratas!
  • 30. Marketing • Launch • Feedback • Analytics • Interação • Iterate & Pivot • Growth Hacking • Sales Pipeline (B2B)
  • 31. Fail Fast, Fail Cheap Não deu certo? Fecha a parte pra outra.