Modèles de projet d’application web Python

Python dans Visual Studio prend en charge le développement de projets web dans les frameworks Bottle, Django et Flask, via des modèles de projet et un lanceur de débogueur qui peuvent être configurés pour gérer différents frameworks. Ces modèles comprennent un fichier requirements.txt permettant de déclarer les dépendances nécessaires. Lorsque vous créez un projet à partir de l’un de ces modèles, Visual Studio vous invite à installer les packages dépendants, comme décrit dans Configuration requise pour l’installation plus loin dans cet article.

Vous pouvez également utiliser le modèle Projet web générique pour d’autres frameworks, comme Pyramid. Dans ce cas, aucun framework n’est installé avec le modèle. Vous devrez installer les packages nécessaires dans l’environnement que vous utilisez pour le projet. Pour plus d’informations, consultez Fenêtre Environnements Python - Onglet Package.

Options de modèle de projet

Pour créer un projet à partir d’un modèle, sélectionnez Fichier>Nouveau>Projet dans le menu de la barre d’outils. Dans la boîte de dialogue Créer un projet , vous pouvez filtrer la liste des modèles pour afficher les options disponibles pour les projets web Python. Entrez les termes clés dans le champ Recherche ou utilisez les menus déroulants de filtre pour sélectionner Python comme langage et Web comme type de projet.

Screenshot that shows the Create a new project dialog with the templates filtered to show options for Python web apps in Visual Studio.

Après avoir sélectionné un modèle, renseignez le nom du projet et de la solution, puis définissez les options du répertoire de solution et du dépôt Git.

Le modèle générique Projet web propose un projet Visual Studio vide sans code et ne fait aucune autre hypothèse mis à part qu’il s’agit d’un projet Python. Les autres modèles reposent sur les frameworks web Bottle, Flask ou Django, regroupés en trois catégories, comme décrit dans les sections qui suivent. Les applications créées à partir de l’un de ces modèles contiennent suffisamment de code pour exécuter et déboguer l’application localement. Chacun de ces modèles fournit également l’objet d’application WSGI (python.org) nécessaire aux serveurs web de production.

Groupe Vide

Tous les modèles Projet web <de l’infrastructure> vide créent un projet avec un code standard plus ou moins minimal , ainsi que les dépendances nécessaires déclarées dans un fichier requirements.txt.

Modèle Description
Projet web Bottle vide Génère une application minimale dans le fichier app.py avec une page d’accueil pour l'emplacement / et une page /hello/<name> qui répercute la valeur <name> en utilisant un modèle de page inline succinct.
Projet web Django vide Génère un projet Django avec la structure de site Django de base mais aucune application Django. Pour plus d’informations, consultez Modèles Django et Apprendre Django - Étape 1.
Projet web Flask vide Génère une application minimale avec une seule page « Hello World! » pour l'emplacement /. Cette application est similaire au résultat obtenu en suivant les étapes détaillées dans Démarrage rapide : Utiliser Visual Studio pour créer votre première application web Python. Pour plus d’informations, reportez-vous à la section Découvrir Flask - Étape 1.

Groupe web

Tous les modèles <Projet web> de l’infrastructure créent une application web de démarrage avec un design identique quel que soit l’infrastructure choisie. Cette application contient les pages Accueil, À propos de et Contact, ainsi qu’une barre de menu de navigation et une conception réactive qui utilise Bootstrap. Chaque application est configurée de manière appropriée pour servir les fichiers statiques (CSS, JavaScript et polices) et utilise un mécanisme de modèle de page approprié pour le framework.

Modèle Description
Projet web Bottle Génère une application dont les fichiers statiques sont contenus dans le dossier static et gérés par le biais de code dans le fichier app.py. Le routage des pages individuelles est contenu dans le fichier routes.py. Le dossier views contient les modèles de page.
Projet web Django Génère un projet Django et une application Django avec trois pages, la prise en charge de l’authentification et une base de données SQLite (mais aucun modèle de données). Pour plus d’informations, consultez Modèles Django et Apprendre Django - Étape 4.
Projet web Flask Génère une application dont les fichiers statiques sont contenus dans le dossier static. Le code contenu dans le fichier views.py gère le routage, et les modèles de page utilisant le moteur Jinja sont contenus dans le dossier templates. Le fichier runserver.py fournit le code de démarrage.

Configuration requise

Lorsque vous créez un projet à partir d’un modèle propre à l’infrastructure, Visual Studio ouvre une boîte de dialogue pour vous aider à installer les packages nécessaires à l’aide de pip. Nous vous recommandons également d’utiliser un environnement virtuel pour les projets Web afin de vous assurer que les dépendances appropriées soient incluses lorsque vous publiez votre site web :

Screenshot that shows the dialog to install packages for a project template in Visual Studio.

Si vous utilisez le contrôle de code source, vous pouvez généralement ignorer le dossier d’environnement virtuel car cet environnement peut être recréé en utilisant uniquement le fichier requirements.txt. La meilleure façon d’exclure le dossier est de commencer par sélectionner l’option I will install them myself (Je les installerai moi-même), puis de désactiver la validation automatique avant de créer l’environnement virtuel. Pour plus d’informations, consultez Tutoriel d’apprentissage de Django - Étapes 1-2 et 1-3 et Tutoriel d’apprentissage de Flask - Étapes 1-2 et 1-3.

Lorsque vous déployez sur Microsoft Azure App Service, sélectionnez une version de Python comme extension de site et installez manuellement les packages. En outre, étant donné qu’Azure App Service n’installe pas automatiquement les packages à partir d’un fichier requirements.txt en cas de déploiement à partir de Visual Studio, suivez les instructions de configuration fournies sur la page aka.ms/PythonOnAppService.

Options de débogage

Quand vous ouvrez un projet web à des fins de débogage, Visual Studio démarre un serveur web local sur un port aléatoire et ouvre votre navigateur par défaut sur cette adresse et ce port. Pour spécifier d’autres options, cliquez avec le bouton droit sur le projet dans l’Explorateur de solutions, puis sélectionnez Propriétés. Dans la page Propriétés, sélectionnez l’onglet Déboguer.

Screenshot that shows the Web launcher properties for the generic web template in Visual Studio.

Il existe trois groupes d’options de configuration courantes pour le débogage du projet. Le groupe Run inclut les propriétés suivantes :

  • Les options Chemins de recherche, Arguments de script, Chemin de l’interpréteur et Arguments de l’interpréteur sont identiques à celles du débogage standard.
  • L'URL de lancement spécifie l’URL qui s'ouvre dans votre navigateur. L’emplacement par défaut est : localhost.
  • Le Numéro de port identifie le port à utiliser si aucun n’est spécifié dans l’URL (Visual Studio sélectionne automatiquement un port par défaut). Ce paramètre vous permet de remplacer la valeur par défaut de la variable d’environnement SERVER_PORT, qui est utilisée par les modèles pour configurer le port écouté par le serveur de débogage local.
  • La liste Environnement définit les variables à définir dans le processus généré. Le format est une liste de <NAME>=<VALUE> paires séparées par une nouvelle ligne.

Les propriétés des groupes Run Server Command et Debug Server Command déterminent le mode de lancement du serveur web. Étant donné que de nombreux frameworks nécessitent l’utilisation d’un script à l’extérieur du projet actuel, il est possible de configurer le script à cet emplacement et de transmettre le nom du module de démarrage sous la forme d’un paramètre.

  • La Commande peut être un script Python (fichier *.py), un nom de module (par exemple, python.exe -m module_name) ou une simple ligne de code (telle que python.exe -c "code"). La valeur indiquée dans le champ déroulant indique quel type est souhaité.
  • La liste des Arguments est transmise sur la ligne de commande derrière la commande.
  • Encore une fois, la liste Environnement définit des variables à définir après toutes les propriétés susceptibles de modifier l’environnement, telles que le numéro de port et les chemins de recherche. Ces valeurs de variable peuvent remplacer d’autres valeurs de propriété.

Toute propriété de projet ou variable d’environnement peut être spécifiée avec la syntaxe MSBuild, par exemple $(StartupFile) --port $(SERVER_PORT). $(StartupFile) est le chemin d’accès relatif au fichier de démarrage, et {StartupModule} est le nom importable du fichier de démarrage. $(SERVER_HOST) et $(SERVER_PORT) sont des variables d’environnement normales qui sont définies par les propriétés URL de lancement et Numéro de port, soit automatiquement, soit par la propriété Environnement.

Remarque

Les valeurs de Run Server Command sont utilisées avec la commande Déboguer>Démarrer le serveur ou le raccourci clavier Ctrl+F5. Les valeurs du groupe Debug Server Command sont utilisées avec la Déboguer>Démarrer le serveur de débogage ou F5.

Exemple de configuration Bottle

Le modèle de projet Web Bottle inclut un code réutilisable qui effectue la configuration nécessaire. Toutefois, une application Bottle importée peut ne pas inclure ce code, auquel cas les paramètres ci-après lancent l’application à l’aide du module bottle installé :

  • Groupe Run Server Command (Commande du serveur d’exécution) :

    • Commande : bottle (module)
    • Arguments : --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
  • Groupe Debug Server Command (Commande du serveur de débogage) :

    • Commande : bottle (module)
    • Arguments--debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app

L’option --reload n’est pas recommandée en cas d’utilisation de Visual Studio pour le débogage.

Exemple de configuration Pyramid

Pour l’instant, la méthode de création recommandée pour les applications Pyramid consiste à utiliser l’outil en ligne de commande pcreate. Après avoir créé l'application, elle peut être importée à l’aide du modèle À partir de code Python existant. Une fois l'importation terminée, sélectionnez la personnalisation Projet web générique pour configurer les options. Ces paramètres reposent sur l’hypothèse que Pyramid est installé dans un environnement virtuel à l’emplacement ..\env.

  • Groupe Run :

    • Numéro de port : 6543 (ou tout port configuré dans les fichiers .ini)
  • Groupe Run Server Command (Commande du serveur d’exécution) :

    • Commande : ..\env\scripts\pserve-script.py (script)
    • Arguments : Production.ini
  • Groupe Debug Server Command (Commande du serveur de débogage) :

    • Commande : ..\env\scripts\pserve-script.py (script)
    • Arguments : Development.ini

Conseil

Vous aurez probablement besoin de configurer la propriété Répertoire de travail de votre projet, car les applications Pyramid figurent généralement dans un dossier situé sous la racine du projet.

Autres configurations

Si vous disposez de paramètres pour un autre framework que vous souhaitez partager, ou si vous souhaitez demander des paramètres pour un autre framework, signalez le problème sur GitHub.