En aquest tema, aprendrem com gestionar diferents mètodes HTTP en una aplicació Flask. Els mètodes HTTP són essencials per a la comunicació entre el client i el servidor, i cada mètode té un propòsit específic. Els mètodes més comuns són GET, POST, PUT, DELETE, PATCH, entre d'altres.

Conceptes Clau

  1. Mètodes HTTP:

    • GET: Utilitzat per sol·licitar dades del servidor.
    • POST: Utilitzat per enviar dades al servidor.
    • PUT: Utilitzat per actualitzar dades existents al servidor.
    • DELETE: Utilitzat per eliminar dades del servidor.
    • PATCH: Utilitzat per actualitzar parcialment dades existents al servidor.
  2. Decoradors de Rutes:

    • Flask utilitza decoradors per associar funcions a rutes específiques i mètodes HTTP.

Exemple Pràctic

Configuració de l'Entorn

Assegura't de tenir Flask instal·lat. Si no el tens, pots instal·lar-lo amb pip:

pip install Flask

Creació d'una Aplicació Flask

Comencem creant una aplicació Flask bàsica que gestioni diferents mètodes HTTP.

from flask import Flask, request, jsonify

app = Flask(__name__)

# Ruta per gestionar el mètode GET
@app.route('/items', methods=['GET'])
def get_items():
    items = ["item1", "item2", "item3"]
    return jsonify(items)

# Ruta per gestionar el mètode POST
@app.route('/items', methods=['POST'])
def create_item():
    new_item = request.json.get('item')
    return jsonify({"message": f"Item '{new_item}' creat amb èxit!"}), 201

# Ruta per gestionar el mètode PUT
@app.route('/items/<int:item_id>', methods=['PUT'])
def update_item(item_id):
    updated_item = request.json.get('item')
    return jsonify({"message": f"Item {item_id} actualitzat a '{updated_item}'"}), 200

# Ruta per gestionar el mètode DELETE
@app.route('/items/<int:item_id>', methods=['DELETE'])
def delete_item(item_id):
    return jsonify({"message": f"Item {item_id} eliminat amb èxit!"}), 200

if __name__ == '__main__':
    app.run(debug=True)

Explicació del Codi

  1. Importacions:

    • Flask: La classe principal de Flask.
    • request: Per accedir a les dades de la sol·licitud.
    • jsonify: Per retornar respostes JSON.
  2. Creació de l'Aplicació:

    • app = Flask(__name__): Crea una instància de l'aplicació Flask.
  3. Rutes i Mètodes:

    • GET: La ruta /items retorna una llista d'ítems.
    • POST: La ruta /items crea un nou ítem basat en les dades JSON enviades en la sol·licitud.
    • PUT: La ruta /items/<int:item_id> actualitza un ítem existent identificat per item_id.
    • DELETE: La ruta /items/<int:item_id> elimina un ítem existent identificat per item_id.
  4. Execució de l'Aplicació:

    • app.run(debug=True): Executa l'aplicació en mode de depuració.

Exercicis Pràctics

Exercici 1: Afegir un Mètode PATCH

Afegiu una ruta que gestioni el mètode PATCH per actualitzar parcialment un ítem.

Solució

# Ruta per gestionar el mètode PATCH
@app.route('/items/<int:item_id>', methods=['PATCH'])
def partial_update_item(item_id):
    partial_update = request.json.get('item')
    return jsonify({"message": f"Item {item_id} parcialment actualitzat a '{partial_update}'"}), 200

Exercici 2: Validació de Dades

Modifiqueu la ruta POST per validar que l'ítem no sigui buit abans de crear-lo.

Solució

@app.route('/items', methods=['POST'])
def create_item():
    new_item = request.json.get('item')
    if not new_item:
        return jsonify({"error": "L'ítem no pot estar buit"}), 400
    return jsonify({"message": f"Item '{new_item}' creat amb èxit!"}), 201

Errors Comuns i Consells

  1. Error 405 Method Not Allowed:

    • Assegura't que la ruta està configurada per gestionar el mètode HTTP correcte.
  2. Error 400 Bad Request:

    • Verifica que les dades enviades en la sol·licitud són correctes i compleixen amb els requisits esperats.

Conclusió

En aquesta secció, hem après com gestionar diferents mètodes HTTP en una aplicació Flask. Hem vist exemples pràctics de com utilitzar GET, POST, PUT, DELETE i PATCH, i hem practicat amb exercicis per reforçar els conceptes apresos. Ara estàs preparat per gestionar mètodes HTTP en les teves pròpies aplicacions Flask.

Curs de Desenvolupament Web amb Flask

Mòdul 1: Introducció a Flask

Mòdul 2: Conceptes Bàsics de Flask

Mòdul 3: Formularis i Entrada d'Usuari

Mòdul 4: Integració de Bases de Dades

Mòdul 5: Autenticació d'Usuaris

Mòdul 6: Conceptes Avançats de Flask

Mòdul 7: APIs RESTful amb Flask

Mòdul 8: Desplegament i Producció

Mòdul 9: Proves i Millors Pràctiques

Mòdul 10: Extensions i Ecosistema de Flask

© Copyright 2024. Tots els drets reservats