O documento apresenta Matheus Lima e discute como começar a desenvolver aplicações web com a linguagem Python. Ele introduz os frameworks Flask, Django e Web2py, discute como o Django pode agilizar projetos web através de sua arquitetura MVT e ORM, e como o Fabric pode automatizar tarefas de deploy. Um exemplo prático é dado sobre como o site MeuEstagio.com foi reescrito em Django em menos tempo.
10. Indo um pouco além...
import urllib
import json
from pprint import pprint
url = 'https://graph.facebook.com/matheeusLimaaa'
response = urllib.urlopen(url).read()
data = json.loads(response)
pprint(data)
{u'first_name': u'Matheus',
u'gender': u'male',
u'id': u'100001639854566',
u'last_name': u'Lima',
u'link': u'http://www.facebook.com/MatheeusLimaaa',
u'locale': u'en_US',
u'name': u'Matheus Lima',
u'username': u'MatheeusLimaaa'}
segunda-feira, 24 de março de 14
11. Um pouco mais...
import urllib2
import json
# https://developers.facebook.com/tools/explorer
graph = 'https://graph.facebook.com/search'
token =
'CAACEdEose0cBACMVnp2DQs3NgZCy1GUS0U1JJvaiMAEr1aD4qmJF5DFL1rc5eYT4HQoU
fo8UeScUZAdMUu2wNIKa2dAwY48ujEeEO792lmn7SLlmdr2YXZAdzPi5JRutETVRfIbDep
ZAEU7XxEHFGPtt8n3AjdsnXQEdvsRDRtVtvJd74M9rAV6oDMuqYgu2N9qYo7lpUgZDZD'
def search(text):
url = '%s?q=%s&type=post&access_token=%s' % (graph, text, token)
response = urllib2.urlopen(url).read()
data = json.loads(response.decode('utf-8'))
return data['data']
for result in search('RuPy Sergipe'):
if 'message' in result:
print '%s: %sn' % (result['from']['name'], result['message'])
segunda-feira, 24 de março de 14
12. Resultado
Breno Moura: Já fez sua inscrição no RuPy Sergipe?
Inscreva-se pelo site oficial: http://rupysergipe.github.io/
site
ou pelo eventick: http://eventick.com.br/rupy-sergipe
segunda-feira, 24 de março de 14
13. E o que mais?
• Packages
• easy_install
• pip
• Frameworks
• Django
• Flask
• Pyramid
• Plone
• Deploy
• Fabric
• Heroku
• Webserver
• GUnicorn
segunda-feira, 24 de março de 14
16. O que falam?
• “Python é uma das cinco mais importantes
linguagens que todo programador deve
conhecer” (Bjarne Stroustup, criador do C++)
• “[...] nossa filosofia aqui é “Python sempre que
pudermos, C++ se necessário”” (Alex Martelli, Líder
Técnico, Sistemas de Produção, Google)
segunda-feira, 24 de março de 14
17. O que falam?
• “Python é rápido o suficiente para nosso
site e nos permite produzir características de fácil
manutenção em tempos recordes, com um mínimo
de desenvolvedores.”
(Cuond Do, Arquiteto de Software,Youtube.com)
segunda-feira, 24 de março de 14
18. Quero usar Python na web,
por onde começo?
segunda-feira, 24 de março de 14
21. Hello Flask!
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
$ python hello.py
* Running on http://127.0.0.1:5000/
segunda-feira, 24 de março de 14
22. Web2py
• Um pouco mais robusto;
• Interface web de desenvolvimento;
• Simples desde a instalação;
• DAL;
segunda-feira, 24 de março de 14
23. Django
Django é um framework web de alto nível.
• Escrito em Python
• Estimula o desenvolvimento rápido e
limpo (DjangoProject.com)
segunda-feira, 24 de março de 14
24. Sim, mas como ele pode
agilizar meus projetos?
segunda-feira, 24 de março de 14
28. Models
• Os models compreendem a camada de
domínio da aplicação
• Numa abordagem botton-up, os models são
feitos primeiro.
segunda-feira, 24 de março de 14
29. Models
class Person(models.Model):
name = models.CharField(max_length=100)
cpf = models.CharField(max_length=11)
photo = models.ImageField(uploads_to='person/photo')
birth_date = models.DateField(null=True)
active = models.BooleanField()
segunda-feira, 24 de março de 14
36. $> fab production deploy
Só isso? Como?!
segunda-feira, 24 de março de 14
37. Fabric
Fabric é uma ferramenta que automatiza
tarefas em servidores remotos.
• Deploy;
• Upload/download;
• Qualquer tarefa;
segunda-feira, 24 de março de 14
38. MeuEstagio.com
• O site foi reescrito em Django;
• Meu novo recorde: 2h
• Recorde anterior: 4h (web2py)
• Desafio do minicurso!
segunda-feira, 24 de março de 14