🧪 Site oficial do Flask (Documentação)
| # | Comando / Função / Parâmetro | O que faz | Exemplo |
|---|---|---|---|
| 1 | pip install flask | Instala a biblioteca Flask | pip install flask |
| 2 | Flask(__name__) | Cria a instância da aplicação | app = Flask(__name__) |
| 3 | app.run() | Inicia o servidor de desenvolvimento | app.run(debug=True) |
| 4 | flask run | Comando CLI para rodar o app | flask run --host=0.0.0.0 |
| 5 | FLASK_APP | Variável de ambiente para o arquivo principal | export FLASK_APP=app.py |
| 6 | FLASK_ENV | Define o ambiente (development/production) | export FLASK_ENV=development |
| 7 | @app.route('/') | Define uma rota básica | @app.route('/') |
| 8 | methods=['POST'] | Especifica métodos aceitos na rota | @app.route('/login', methods=['GET', 'POST']) |
| 9 | <variable> | Variável dinâmica na URL | @app.route('/user/<name>') |
| 10 | <int:id> | Conversor de tipo para inteiro na URL | @app.route('/post/<int:id>') |
| 11 | <float:val> | Conversor de tipo para ponto flutuante | @app.route('/tax/<float:val>') |
| 12 | <path:subpath> | Aceita barras na variável da URL | @app.route('/file/<path:p>') |
| 13 | url_for() | Gera a URL para uma função específica | url_for('login') |
| 14 | redirect() | Redireciona o usuário para outra URL | return redirect(url_for('home')) |
| 15 | request.args | Dicionário com parâmetros da URL (?id=1) | request.args.get('search') |
| 16 | request.form | Dados enviados via formulário POST | request.form['username'] |
| 17 | request.json | Dados enviados em formato JSON | request.json['email'] |
| 18 | request.files | Arquivos enviados no upload | file = request.files['foto'] |
| 19 | request.method | Verifica o método da requisição atual | if request.method == 'POST': |
| 20 | request.cookies | Acessa os cookies enviados pelo cliente | request.cookies.get('user_id') |
| 21 | make_response() | Cria um objeto de resposta manualmente | resp = make_response(render_template('ok.html')) |
| 22 | render_template() | Renderiza um arquivo HTML do Jinja2 | return render_template('index.html') |
| 23 | jsonify() | Retorna resposta JSON para APIs | return jsonify({"status": 200}) |
| 24 | abort() | Interrompe a requisição com código de erro | abort(404) |
| 25 | {{ value }} | Exibe o valor de uma variável | {{ user.name }} |
| 26 | {% if %} | Bloco condicional no template | {% if user %}...{% endif %} |
| 27 | {% for %} | Loop para iterar listas no HTML | {% for p in posts %} |
| 28 | {% extends %} | Herança de template pai | {% extends "base.html" %} |
| 29 | {% block %} | Define área de conteúdo substituível | {% block content %}{% endblock %} |
| 30 | {% include %} | Inclui um fragmento de template | {% include "navbar.html" %} |
| 31 | |safe | Renderiza HTML sem escapar tags | {{ html_content|safe }} |
| 32 | session | Armazena dados entre requisições (cookies) | session['user'] = 'admin' |
| 33 | app_context() | Contexto da aplicação (uso fora de views) | with app.app_context(): |
| 34 | g | Objeto global temporário por requisição | g.db = connect_db() |
| 35 | current_app | Referência à aplicação ativa | current_app.config['DB'] |
| 36 | flash() | Envia mensagens rápidas ao usuário | flash('Login realizado!') |
| 37 | get_flashed_messages() | Recupera mensagens flash no template | {% for m in get_flashed_messages() %} |
| 38 | app.config | Dicionário de configurações do app | app.config['SECRET_KEY'] = '123' |
| 39 | app.config.from_pyfile() | Carrega configs de um arquivo .py | app.config.from_pyfile('config.py') |
| 40 | app.config.from_envvar() | Carrega configs de var. de ambiente | app.config.from_envvar('APP_SETTINGS') |
| 41 | @app.before_request | Executa antes de cada requisição | @app.before_request def check_user(): |
| 42 | @app.after_request | Executa após cada requisição | @app.after_request def add_header(r): |
| 43 | @app.teardown_request | Executa ao fim, mesmo se houver erro | @app.teardown_request def close_db(e): |
| 44 | @app.errorhandler() | Captura erros específicos (ex: 404) | @app.errorhandler(404) def page_not_found(e): |
| 45 | Blueprint() | Cria um módulo/blueprint de rotas | auth = Blueprint('auth', __name__) |
| 46 | app.register_blueprint() | Registra o blueprint no app principal | app.register_blueprint(auth_bp) |
| 47 | url_prefix | Define prefixo para todas as rotas do BP | app.register_blueprint(api, url_prefix='/api') |
| 48 | Flask-SQLAlchemy | ORM para banco de dados | db = SQLAlchemy(app) |
| 49 | Flask-Migrate | Migrações de banco de dados | migrate = Migrate(app, db) |
| 50 | Flask-Login | Gerenciamento de autenticação | login_manager.init_app(app) |
| 51 | Flask-WTF | Integração com formulários WTForms | class MyForm(FlaskForm): |
| 52 | Flask-Mail | Envio de e-mails | mail.send(msg) |
| 53 | Flask-CORS | Habilita Cross-Origin Resource Sharing | CORS(app) |
| 54 | Flask-RESTful | Framework para construção de APIs | api.add_resource(User, '/user') |
| 55 | db.Model | Classe base para modelos | class User(db.Model): |
| 56 | db.Column() | Define uma coluna na tabela | id = db.Column(db.Integer, primary_key=True) |
| 57 | db.session.add() | Adiciona objeto à sessão do banco | db.session.add(new_user) |
| 58 | db.session.commit() | Salva alterações permanentemente | db.session.commit() |
| 59 | db.session.rollback() | Cancela alterações da sessão atual | db.session.rollback() |
| 60 | Model.query.all() | Busca todos os registros | User.query.all() |
| 61 | Model.query.get() | Busca por ID | User.query.get(5) |
| 62 | Model.query.filter_by() | Filtra registros por chave/valor | User.query.filter_by(name='Leo') |
| 63 | @app.cli.command() | Cria um comando customizado de terminal | @app.cli.command('create-db') |
| 64 | secure_filename() | Limpa nome de arquivo para upload | name = secure_filename(f.filename) |
| 65 | send_from_directory() | Serve arquivos de uma pasta | send_from_directory('static', filename) |
| 66 | app.test_client() | Cria cliente para testes unitários | client = app.test_client() |
| 67 | GET | Recuperação de dados | methods=['GET'] |
| 68 | POST | Envio de novos dados | methods=['POST'] |
| 69 | PUT | Atualização completa | methods=['PUT'] |
| 70 | PATCH | Atualização parcial | methods=['PATCH'] |
| 71 | DELETE | Remoção de dados | methods=['DELETE'] |
| 72 | 200 OK | Sucesso padrão | return "OK", 200 |
| 73 | 201 Created | Sucesso na criação | return "Novo", 201 |
| 74 | 401 Unauthorized | Erro de autenticação | abort(401) |
| 75 | 403 Forbidden | Acesso negado | abort(403) |
| 76 | 500 Server Error | Erro interno no servidor | abort(500) |