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
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"
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, …