Do zero ao deploy com Python e Bottle
Eric Hideki
Python
- Criada em 1989 por Guido Van Hossum
- Contém uma sintaxe concisa e clara
- Excelente biblioteca padrão
- Fácil de aprender e instalar
- Uma comunidade enorme ao redor do mundo
Como instalar?
- No Ubuntu e no Mac OSX já vem instalados!
- Instalar no Windows, baixe o .exe e next³
Zen do Python
Tim Peters
>> import this
Bonito é melhor que feio.
Explícito é melhor que implícito.
Simples é melhor que complexo.
Complexo é melhor que complicado.
Linear é melhor do que aninhado.
Esparso é melhor que denso.
Legibilidade conta.
Casos especiais não são especiais o bastante para quebrar as regras.
Ainda que praticidade vença a pureza.
Erros nunca devem passar silenciosamente.
A menos que sejam explicitamente silenciados.
Diante da ambigüidade, recuse a tentação de adivinhar.
Deveria haver um — e preferencialmente só um — modo óbvio para fazer algo.
Embora esse modo possa não ser óbvio a princípio a menos que você seja holandês.
Agora é melhor que nunca.
Embora nunca freqüentemente seja melhor que *já*.
Se a implementação é difícil de explicar, é uma má idéia.
Se a implementação é fácil de explicar, pode ser uma boa idéia.
Namespaces são uma grande idéia — vamos ter mais dessas!
O famoso Hello World
print ('Hello World')
from random import randint
print ('Bem vindo!')
sorteado = randint(1, 100)
chute = 0
while chute != sorteado:
chute = int(input ('Chute: '))
if chute == sorteado:
print ('Você venceu!')
else:
if chute > sorteado:
print ('Alto')
else:
print ('Baixo')
print ('Fim do jogo!')
import random
nomes = '''Júlia Sophia Isabella Manuela Giovanna Alice Laura
Luiza Beatriz Mariana Yasmin Gabriela Rafaela Isabelle Lara
Letícia Valentina Nicole Sarah Vitória Isadora Lívia Helena
Lorena Clara Larissa Emanuelly Heloisa Marina Melissa Gabrielly
Eduarda Rebeca Amanda Alícia Bianca Lavínia Fernanda Ester
Carolina Emily Cecília Pietra Milena Marcela Laís Natália
Maria Bruna Camila Luana Catarina Olivia Agatha Mirella
Sophie Stella Stefany Isabel Kamilly Elisa Luna Eloá Joana
Mariane Bárbara Juliana Rayssa Alana Caroline Brenda Evelyn
Débora Raquel Maitê Ana Nina Hadassa Antonella Jennifer
Betina Mariah Sabrina'''.split()
nomes.sort()
print (' '.join(nomes))
sorteado = random.choice(nomes)
chute = ''
while chute != sorteado:
chute = input('Chute: ')
if chute == sorteado:
print ('Parabéns!')
elif chute > sorteado:
print ('Alto')
else:
print ('Baixo')
http://mindbending.org/pt/hack-n-cast-v06-python
Bottle
Por que Bottle?
- Leve
- Simples
- Único arquivo
- Excelente documentação
- Poderoso
from bottle import route, run, template
@route('/hello/<name>')
def index(name):
return template('<b>Hello {{name}}</b>!', name=name)
run(host='localhost', port=8080)
Como instalar?
$ wget http://bottlepy.org/bottle.py
$ sudo pip install bottle
$ sudo easy_install bottle
$ sudo apt-get install python-bottle
O que é o pip?
Pip
Gerenciador de programas/pacotes Python
https://pypi.python.org/pypi/pip/
https://pypi.python.org/pypi?%3Aaction=index
Bottle-boilerplate
https://github.com/avelino/bottle-boilerplate
(virtualenvwrapper) -> mkvirtualenv cpbr8
(cpbr8) -> cd cpbr8
(cpbr8) -> bottle startproject cpbr8
(cpbr8) -> pip install bottle-boilerplate
(cpbr8) -> cd cpbr8
(cpbr8) -> pip install -r requirements.txt
(cpbr8) -> bottle doc
Mas o que ele faz?
Bottle-boilerplate
Cria um template(cria um padrão) de um projeto bottle(MVC).
Git
.gitignore
O que é?
Vamos rodar?
python manage.py runserver
E como faço deploy no Heroku?
Heroku Toolbelt
Ferramenta linha de comando para trabalhar com o Heroku
https://toolbelt.heroku.com/
Procfile
Profile: web: python manage.py runserver
Heroku login
-> heroku create cpbr8
git push heroku master
https://cpbr8.herokuapp.com/
E a Pythonanywhere?
https://www.pythonanywhere.com/
Mas espera, não subiu o bottle-boilerplate?
Homework
Tip
http://blog.pythonanywhere.com/87/
https://github.com/avelino/mining
Obrigado!
@erichideki
Tutorial do zero ao deploy com Python e Bottle
By erichideki
Tutorial do zero ao deploy com Python e Bottle
Tutorial Hands-on do zero ao deploy com Bottle
- 3,016