Slide 1

Slide 1 text

Python na Web com Flask O micro framework

Slide 2

Slide 2 text

Apresentação ● Guilherme Arthur de Carvalho | Gui ● Formado em ADS (IFSP campus Araraquara) ● Desenvolvedor Liferay, Entelgy Brasil ● Desenvolvedor Python quando tem trampo

Slide 3

Slide 3 text

Visão Geral ● História ● Flask (routes, staticfiles, templates, request, cookies, sessions) ● Extensões ● Aplicação Flaskr ● Blueprints

Slide 4

Slide 4 text

Pocoo Team ● Grupo de entusiastas Python ● Fundado em 2004 por Armin Ronacher e Georg Brandl ● Desenvolvem ferramentas open source

Slide 5

Slide 5 text

Micro Framework

Slide 6

Slide 6 text

Comunidade Flask é o *segundo Framework Python mais utilizado. * No momento que essa apresentação foi criada.

Slide 7

Slide 7 text

Instalação ~$ pip install flask ~$ pip freeze

Slide 8

Slide 8 text

Configuração e Convenção Flask tem alguns valores de configurações default que são os app.conf.* (TESTING, SECRET_KEY). Templates e arquivos estáticos são armazenados em subdiretórios dentro da aplicação com os nomes templates e static respectivamente.

Slide 9

Slide 9 text

Hello opensanca! from flask import Flask app = Flask(__name__) @app.route('/hello') def hello_opensanca(): return 'Hello opensanca!' ~$ export FLASK_APP=app.py ~$ export FLASK_DEBUG=1 ~$ flask run http://localhost:5000/hello

Slide 10

Slide 10 text

Rotas from flask import Flask app = Flask(__name__) @app.route('/user/') def show_user_profile(username): return 'User {}'.format(username) @app.route('/user/') def show_post(post_id): return 'Post {}'.format(post_id)

Slide 11

Slide 11 text

Métodos HTTP from flask import request @app.route('/user/create', methods=['POST', 'GET']) def create_user(): if request.method == 'POST': # cria usuário else: # exibe form

Slide 12

Slide 12 text

Durante a fase de desenvolvimento podemos usar o Flask para servir arquivos estáticos. Para isso devemos criar uma pasta chamada static em nosso pacote. url_for('static', filename='style.css') … … Arquivos estáticos

Slide 13

Slide 13 text

Templates from flask import render_template @app.route('/welcome/') def welcome_name(name): return render_template('hello.html', name=name) opensanca

Welcome, {{ name }}

Slide 14

Slide 14 text

Cookies e Session from flask import make_response @app.route('/') def index(): resp = make_response(render_template(...)) request.cookies.get('username') resp.set_cookie('username', 'the username') return resp from flask import Flask, session, redirect, url_for, escape, request @app.route('/') def index(): … return '%s' % escape(session['username']) @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': session['username'] = request.form['username'] … @app.route('/logout') def logout(): session.pop('username', None) return redirect(url_for('index'))

Slide 15

Slide 15 text

Flask-ext-* O Flask possui wrappers para diversas bibliotecas. Esses wrappers são chamados de EXT. Você pode consultar os disponíveis em: http://flask.pocoo. org/extensions/

Slide 16

Slide 16 text

Obrigado! [email protected] @homeguii