Nouveau : Datasets open source gratuits disponibles !Decouvrir →
🐍
Intermediaire 20 min Flask

Deployer Flask sur Firebase

Pourquoi Déployer Flask sur Firebase ?

Le déploiement d'un application Flask sur Firebase permet une mise en production rapide et simple, tout en profitant de la puissance et de l'élasticité de cette plateforme. En effet, Firebase offre un ensemble complet d'outils pour le développement web, dont les services de stockage et d'hébergement qui sont idéaux pour des applications légers comme Flask. De plus, Firebase est conçu pour être performant, sécurisé et facile à utiliser.

Un cas d'utilisation concret pourrait être l'hébergement d'un site web simple, un backend API ou une application web minimaliste nécessitant une mise en production rapide.

Prerequis

  • Connaissance de base de Flask (routes, templates, requêtes)
  • Python 3.7+
  • Firebase CLI v12+
  • Node.js (pour les outils Firebase)

Concepts fondamentaux

1. Environnement de développement local

Avant de déployer sur Firebase, il est important de s'assurer que votre environnement de développement fonctionne correctement.

## app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Firebase!"

2. Création d'un projet Firebase

Créez un nouveau projet Firebase via le portail web et notez l'ID du projet.

## Initialiser Firebase dans votre application
firebase init

Sélectionnez Hosting puis suivez les instructions pour connecter votre projet Firebase à votre application Flask.

3. Configuration de la base de données Firestore

Firestore est une base de données NoSQL qui fonctionne parfaitement avec Firebase et peut être utilisée pour stocker des données liées à votre application.

## app.py - Ajout d'une route pour lire/écrire dans Firestore
from flask import Flask, request, jsonify
import firebase_admin
from firebase_admin import credentials, firestore

cred = credentials.Certificate('path/to/your/serviceAccountKey.json')
firebase_admin.initialize_app(cred)

db = firestore.client()

@app.route('/tasks', methods=['POST'])
def add_task():
    task = request.get_json()
    doc_ref = db.collection(u'tasks').document().set(task)
    return jsonify({"message": "Task added", "id": doc_ref.id}), 201

@app.route('/tasks', methods=['GET'])
def get_tasks():
    tasks = []
    for doc in db.collection(u'tasks').stream():
        tasks.append(doc.to_dict())
    return jsonify(tasks), 200

4. Déploiement sur Firebase Hosting

Une fois votre application Flask configurée, vous pouvez déployer facilement sur Firebase Hosting.

## Installer les dépendances de Firebase
npm install -g firebase-tools

## Initialiser Firebase CLI
firebase login

## Configurer Firebase Hosting
firebase init hosting --public dist

## Déployer l'application
firebase deploy --only hosting

Mise en pratique : Projet fil rouge

Étape 1 : Création du projet Flask

## app.py - Mini-projet de gestionnaire de tâches
from flask import Flask, request, jsonify
import firebase_admin
from firebase_admin import credentials, firestore

cred = credentials.Certificate('path/to/your/serviceAccountKey.json')
firebase_admin.initialize_app(cred)

db = firestore.client()

app = Flask(__name__)

@app.route('/tasks', methods=['POST'])
def add_task():
    task = request.get_json()
    doc_ref = db.collection(u'tasks').document().set(task)
    return jsonify({"message": "Task added", "id": doc_ref.id}), 201

@app.route('/tasks/<task_id>', methods=['GET'])
def get_task(task_id):
    task = db.collection(u'tasks').document(task_id).get()
    if task.exists:
        return jsonify(task.to_dict()), 200
    else:
        return jsonify({"message": "Task not found"}), 404

@app.route('/tasks/<task_id>', methods=['PUT'])
def update_task(task_id):
    task = request.get_json()
    db.collection(u'tasks').document(task_id).update(task)
    return jsonify({"message": "Task updated"}), 200

@app.route('/tasks/<task_id>', methods=['DELETE'])
def delete_task(task_id):
    db.collection(u'tasks').document(task_id).delete()
    return jsonify({"message": "Task deleted"}), 200

Étape 2 : Configuration de Firebase Hosting

## Initialiser Firebase CLI
firebase login

## Configurer Firebase Hosting
firebase init hosting --public dist

## Déployer l'application
firebase deploy --only hosting

Erreurs fréquentes et debugging

Erreur 1 : ModuleNotFoundError: No module named 'flask'

Si vous rencontrez cette erreur, assurez-vous que Flask est correctement installé dans votre environnement virtuel.

## Installer Flask
pip install flask

Erreur 2 : Error: Your project does not have a valid service account file.

Cette erreur se produit si Firebase n'a pas accès à vos données de compte d'utilisateur. Assurez-vous que vous avez configuré correctement le fichier de clé JSON pour Firebase.

## Vérifier les fichiers de configuration Firebase
firebase projects:list

Erreur 3 : Error: No such file or directory: 'dist'

Cette erreur se produit si Firebase ne trouve pas la répertoire spécifié pour l'hébergement. Assurez-vous que vous avez configuré correctement le chemin dans le fichier de configuration Firebase.

## Configurer Firebase Hosting
firebase init hosting --public dist

Pour aller plus loin

  1. Intégration avec Firestore : Apprenez à utiliser Firestore pour stocker et récupérer des données de manière asynchrone.
  2. Authentification Firebase : Ajoutez une authentification utilisateurs à votre application Flask en utilisant Firebase Authentication.
  3. App Engine Standard : Déployez votre application sur Google App Engine Standard, qui offre une meilleure performance pour les applications web.

Défi pratique : Créez un simple backend API de blog avec Firebase et déployez-le sur Firebase Hosting.

Besoin d'aide sur Flask ?

Besoin d'aide sur un projet technique ? Decrivez-le pour des conseils personnalises.

Recevoir des conseils

Questions frequentes

Comment installer Flask sur Firebase?
Pour installer Flask sur Firebase, commencez par créer un environnement virtuel Python, installez Flask à l'intérieur de ce venv et utilisez Firebase Admin SDK pour intégrer Firebase avec votre application Flask.
Quelles sont les principales avantages de déployer Flask sur Firebase?
Firebase offre des avantages tels que les serveurs hautement scalables, le stockage en ligne sécurisé et facile à utiliser, ainsi que la possibilité d'ajouter des fonctionnalités comme l'authentification et le Realtime Database directement dans votre application Flask.
Comment configurer Firebase pour une application Flask?
Pour configurer Firebase dans une application Flask, vous devez créer un projet Firebase, installer Firebase Admin SDK, initialiser Firebase avec les informations de votre projet et utiliser Firebase en fonctionnalités spécifiques comme l'authentification, le stockage et la base de données réactive.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.