Plateforme fédérale de données scientifiquesPlateforme fédérale de données scientifiques
  • English
  • Français
  • English
  • English
  • Français
  • English
  • Survol
  • Gérer les espaces de travail et les utilisateurs

    • Obtenir un espace de travail (uniquement disponible sur le réseau GC)
    • Estimer les coûts (uniquement disponible sur le réseau GC)
    • Configuration du compte
    • Demandez, configurez, et utilisez des outils dans votre espace de travail
    • Invitez un utilisateur
    • Modifier le rôle d'un utilisateur
    • Gérez vos budgets BOI et espaces de travail
  • Stockage

    • Travailler avec le stockage Azure
    • Apporter votre propre stockage

      • Importer du stockage AWS S3
      • Importer du stockage Azure
      • Importer un compte GCP
    • Accéder au stockage dans Databricks
    • Accéder au stockage dans Power BI
    • Utiliser AzCopy pour intéragir avec le stockage
  • Databricks

    • Commencer avec Databricks sur la PFDS
    • Politiques des clusters sur Databricks
    • MLFlow : AutoML et expériences
    • Flux de travail sur Databricks
    • Tableau de bord

      • Comment créer un tableau de bord dans Databricks
      • Les tableaux de bord sur Databricks comparés à d'autres outils
    • Extensions externes

      • Intégration de Git/GitHub avec Databricks
      • Databricks VS Code Extension
      • Travailler avec Conda
      • Connexion de l'API Google à Databricks
  • PostgreSQL

    • Créer et utiliser une base de données PostgreSQL sur la PFDS
    • Ajouter un utilisateur de la PFDS à PostgreSQL
    • Accéder à PostgreSQL dans Power BI
    • PostgreSQL vs Azure Databricks - Fonctionnalités des bases de données
  • Applications Web

    • Hébergement d'applications Web sur la PFDS
    • Exemples d'applications

      • Django (Python)
      • Configuration Django pour la PFDS
      • Dash (Python)
      • Flask (Python)
      • Shiny (R)
      • Streamlit (Python)
  • Migration vers production

    • Migration ou retrait du stockage
    • Migration ou retrait du Databricks
    • Migration ou retrait d'un base de données PostgreSQL
    • Migration ou retrait des applications web
  • Conseils aux utilisateurs

    • Gestion des comptes et contrôle d'accès aux espaces de travail
    • Sauvegarde et récupération
    • Gestion de code
    • Types de fichiers restreints sur le stockage PFDS
    • Contrôle de l'espace de travail
  • Conditions générales

Configuration Django pour la PFDS

Si votre application web est une application Django, ce guide existe pour vous assister dans quelques changements de plus qui seront requis pour que votre application fonctionne bien sur la PFDS.

Activer la réécriture d'URL

Dans la section de service d'application, sous les paramètres rapides, existe une option nommée "Réécriture d'URL" qui doit être activée. Sans ce changement, il est possible que Django ne reconnaisse pas les URL qui se font accéder.

Ajouter la PFDS aux configurations ALLOWED_HOSTS et CSRF_TRUSTED_ORIGINS

Pour que la PFDS montre vos pages web, vous avez besoin d'informer le serveur quels sites sont permis d'être hôte de votre application. Il est probable que vous avez déjà des variables d'environnement qui déterminent ceci, dans ce cas vous devez simplement ajouter federal-science-datahub.canada.ca, plateforme-federale-donnees-scientifiques.canada.ca, prd.fsdh-dhsf.science.cloud-nuage.canada.ca et fsdh-proj-<nom du projet>-webapp-prd.azurewebsites.net. Si vous n'avez pas de variables d'environnement pour déterminer ces valeurs, vous pouvez soit les créer ou manuellement ajouter ces valeurs dans votre fichier settings.py.

Voici un exemple de quoi ces valeurs pourraient ressembler à l'intérieur de votre settings.py. Dans ce cas-ci, les deux sont déterminés par la même variable d'environnement mais cela n'est pas nécessaire.

ALLOWED_HOSTS = os.environ.get("ALLOWED_HOSTS","127.0.0.1").split(",")
CSRF_TRUSTED_ORIGINS = (f'https://{i}' for i in ALLOWED_HOSTS) # CSRF_TRUSTED_ORIGINS a besoin que la chaîne commence par "https://".

Ajouter le FORCE_SCRIPT_NAME dans settings.py

Dans le fichier settings.py de votre projet, vous auriez besoin de mettre la variable FORCE_SCRIPT_NAME pour qu'elle inclue le "URL proxy pour le développement" qui se trouve dans les informations sur l'application web dans la section de gestion d'application de votre espace de travail. Cette valeur devrait ressembler à /app/<Nom du projet>/. Une fois que cette modification est appliquée, Django va ajouter le préfixe aux liens internes de vos pages.

Vous aurez aussi besoin de modifier votre déclaration de STATIC_URL dans le même fichier et ajouter la même valeur au début. Les changements devraient ressembler au code suivant.

FORCE_SCRIPT_NAME = os.environ.get("SCRIPT_NAME","")
# ... Il y a probablement plus de code entre ces deux lignes.
STATIC_URL = os.path.join(FORCE_SCRIPT_NAME, "static/")

Pour que Django applique vraiment le préfixe par compte, il semble qu'il faut que les chaînes dans votre fichier urls.py de base sont des chaînes formaté:

urlpatterns = [
    path('chemin/ici/', views.page, name="page"), # Incorrecte, pas de chaînes formaté
    path(f'autre/chemin/', views.page, name="page"), # Correcte, une chaîne formate
    path(f'autre/chemin/', include("autres.urls")), # Applique ce changement aussi pour les chaînes qui mènent à d'autres urlpatterns, vous n'avez pas besoin de formatter les chaînes dans ces autres fichiers.
] + static(settings.STATIC_URL, document_root=settings.STATICFILES_DIRS)

Récupération correcte de l'URL

Il est possible que certains liens ou références ne marchent pas, si cela est le cas, assurez-vous que vous utilisez le remplacement d'URL de Django et que ces liens ne sont pas codé en dur. Par exemple, dans votre HTML/CSS/JS utilisez "{% url 'accueil' %}" à la place de "/" ou "/accueil". Dans votre code Python, l'équivalent serait django.urls.reverse("accueil"). Assurez-vous aussi que les pages sont bel et bien nommées dans vos fichiers urls.py car ce sont ces noms que Django essaie de trouver. Sans ces changements, votre préfixe ne se fait pas appliquer à vos URLs.

Modifier cette page sur GitHub
Dernière mise à jour: 2026-08-10 17 h 16
Précédent
Django (Python)
Prochain
Dash (Python)