Modèles de projet d’application web PythonPython web application project templates

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.Python in Visual Studio supports developing web projects in Bottle, Flask, and Django frameworks through project templates and a debug launcher that can be configured to handle various frameworks. Ces modèles comprennent un fichier requirements.txt permettant de déclarer les dépendances nécessaires.These templates include a requirements.txt file to declare the necessary dependencies. Lors de la création d’un projet à partir de l’un de ces modèles, Visual Studio vous invite à installer ces packages (voir Installation des spécifications du projet plus loin dans cet article).When creating a project from one of these templates, Visual Studio prompts you to install those packages (see Installing project requirements later in this article).

Vous pouvez également utiliser le modèle « Projet web » générique pour d’autres frameworks, comme Pyramid.You can also use the generic "Web Project" template for other frameworks such as Pyramid. Dans ce cas, aucun framework n’est installé avec le modèle.In this case, no frameworks are installed with the template. Vous devrez installer les packages nécessaires dans l’environnement que vous utilisez pour le projet (voir Gestion des environnements Python).Instead, install the necessary packages into the environment you're using for the project (see Managing Python environments).

Utilisation d’un modèle de projetUsing a project template

Vous créez une projet à partir d’un modèle en utilisant Fichier > Nouveau > Projet.You create a project from a template using File > New > Project. Pour voir les modèles de projets web, sélectionnez Python > Web dans la partie gauche de la boîte de dialogue.To see templates for web projects, select Python > Web on the left side of the dialog box. Ensuite, sélectionnez un modèle de votre choix, en fournissant le nom du projet et de la solution, définissez les options d’un répertoire de solution et d’un dépôt Git, puis sélectionnez OK.Then select a template of your choice, providing names for the project and solution, set options for a solution directory and Git repository, and select OK.

Boîte de dialogue Nouveau projet pour les applications web

Le modèle générique « Projet web », mentionné précédemment, propose un projet Visual Studio vide sans code et sans autre hypothèse mis à part qu’il s’agit d’un projet Python.The generic "Web Project" template, mentioned earlier, provides only an empty Visual Studio project with no code and no assumptions other than being a Python project. Pour plus d’informations sur le modèle « Service cloud Azure », voir Projets de service cloud Azure pour Python.python-azure-cloud-service-project-template.mdFor details on the "Azure Cloud Service" template, see Azure cloud service projects for Python.python-azure-cloud-service-project-template.md

Tous les autres modèles reposent sur les frameworks web Bottle, Flask ou Django et appartiennent à trois groupes généraux, comme décrit dans les sections qui suivent.All the other templates are based on the Bottle, Flask, or Django web frameworks, and fall into three general groups as described in the following sections. 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.The apps created by any of these templates contains sufficient code to run and debug the app locally. Chacun de ces modèles fournit également l’objet d’application WSGI (python.org) nécessaire pour effectuer un déploiement sur Azure App Service.Each one also provides the necessary WSGI app object (python.org) to deploy to Azure App Service.

Groupe VideBlank group

Tous les modèles « Projet web (framework) vide » créent un projet contenant plus ou moins de code minimal réutilisable, ainsi que les dépendances nécessaires déclarées dans un fichier requirements.txt.All "Blank (framework) Web Project" templates create a project with more or less minimal boilerplate code and the necessary dependencies declared in a requirements.txt file.

ModèleTemplate DescriptionDescription
Projet web Bottle videBlank Bottle Web Project Génère une application minimale dans app.py avec une page d’accueil pour / et une page /hello/<name> qui répercute <name> en utilisant un modèle de page inline succint.Generates a minimal app in app.py with a home page for / and a /hello/<name> page that echoes <name> using a very short inline page template.
Projet web Django videBlank Django Web Project Génère un projet Django avec la structure de site Django de base mais aucune application Django.Generates a Django project with the core Django site structure but no Django apps. Pour plus d'informations, voir Modèles Django et Apprentissage de Django - Étape 1.For more information, see Django templates and Learning Django Step 1.
Projet web Flask videBlank Flask Web Project Génère une application minimale contenant une page « Hello World! »Generates a minimal app with a single "Hello World!" unique pour /.page for /. 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.This app is similar to the result of following the detailed steps in Quickstart: Use Visual Studio to create your first Python web app. Consultez également Découverte de Flask - Étape 1.Also see Learning Flask Step 1.

Groupe webWeb group

Tous les modèles « Projet web (Framework) » créent une application web de démarrage avec un design identique quel que soit le framework choisi.All "(Framework) Web Project" templates create a starter web app with an identical design regardless of the chosen framework. Cette application contient les pages Accueil, À propos de et Contact, ainsi qu’une barre de navigation et une conception réactive grâce à Bootstrap.The app has Home, About, and Contact pages, along with a nav bar and responsive design using Bootstrap. Chaque application est configurée de manière appropriée pour les fichiers statiques de serveur (CSS, JavaScript et polices) et utilise un mécanisme de modèle de page approprié pour le framework.Each app is appropriately configured to server static files (CSS, JavaScript, and fonts), and uses a page template mechanism appropriate for the framework.

ModèleTemplate DescriptionDescription
Projet web BottleBottle Web Project 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 app.py.Generates an app whose static files are contained in the static folder and handled through code in app.py. Le routage des pages individuelles est contenu dans routes.py et le dossier views contient les modèles de page.Routing for the individual pages is contained in routes.py, and the views folder contains the page templates.
Projet web DjangoDjango Web Project 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).Generates a Django project and a Django app with three pages, authentication support, and a SQLite database (but no data models). Pour plus d'informations, voir Modèles Django et Apprentissage de Django - Étape 4.For more information, see Django templates and Learning Django Step 4.
Projet web FlaskFlask Web Project Génère une application dont les fichiers statiques sont contenus dans le dossier static.Generates an app whose static files are contained in the static folder. Le code contenu dans views.py gère le routage et les modèles de page utilisant le moteur Jinja sont contenus dans le dossier templates.Code in views.py handles routing, with page templates using the Jinja engine contained in the templates folder. Le fichier runserver.py fournit le code de démarrage.The runserver.py file provides startup code. Consultez Découverte de Flask - Étape 4.See Learning Flask Step 4.
Projet web Flask/JadeFlask/Jade Web Project Génère la même application qu’avec le modèle « Projet web Flask », mais en utilisant l’extension Jade pour le moteur de création de modèles Jinja.Generates the same app as with the "Flask Web Project" template but using the Jade extension for the Jinja templating engine.

Groupe SondagesPolls group

Les modèles « Projet web (framework) de sondage » crée une application web de démarrage via laquelle les utilisateurs peuvent voter sur différentes questions de sondage.The "Polls (framework) Web Project" templates create a starter web app through which users can vote on different poll questions. Chaque application repose sur la structure des modèles de projet « web » et utilise une base de données pour gérer les sondages et les réponses des utilisateurs.Each app builds upon the structure of the "Web" project templates to use a database to manage the polls and user responses. Les applications contiennent les modèles de données appropriés et une page d’application spéciale (/seed) qui charge les sondages à partir d’un fichier samples.json.The apps include appropriate data models and a special app page (/seed) that loads polls from a samples.json file.

ModèleTemplate DescriptionDescription
Projet web Bottle de sondagePolls Bottle Web Project Génère une application qui peut s’exécuter sur une base de données en mémoire, MongoDB ou Stockage Table Azure, qui est configurée à l’aide de la variable d’environnement REPOSITORY_NAME.Generates an app that can run against an in-memory database, MongoDB, or Azure Table Storage, which is configured using the REPOSITORY_NAME environment variable. Les modèles de données et le code de magasin de données sont contenus dans le dossier models et le fichier settings.py contient le code permettant de déterminer quel magasin de données est utilisé.The data models and data store code are contained in the models folder, and the settings.py file contains code to determine which data store is used.
Projet web Django de sondagePolls Django Web Project Génère un projet Django et une application Django contenant trois pages et une base de données SQLite.Generates a Django project and a Django app with three pages and a SQLite database. Inclut des personnalisations de l’interface administrative Django pour permettre à un administrateur authentifié de créer et de gérer des sondages.Includes customizations to the Django administrative interface to allow an authenticated administrator to create and manage polls. Pour plus d'informations, voir Modèles Django et Apprentissage de Django - Étape 6.For more information, see Django templates and Learning Django Step 6.
Projet web Flask de sondagePolls Flask Web Project Génère une application qui peut s’exécuter sur une base de données en mémoire, MongoDB ou Stockage Table Azure, qui est configurée à l’aide de la variable d’environnement REPOSITORY_NAME.Generates an app that can run against an in-memory database, MongoDB, or Azure Table Storage, which is configured using the REPOSITORY_NAME environment variable. Les modèles de données et le code de magasin de données sont contenus dans le dossier models et le fichier settings.py contient le code permettant de déterminer quel magasin de données est utilisé.The data models and data store code are contained in the models folder, and the settings.py file contains code to determine which data store is used. L’application utilise le moteur Jinja pour les modèles de page.The app uses the Jinja engine for page templates. Consultez Découverte de Flask - Étape 5.See Learning Flask Step 5.
Projet web Flask/Jade de sondagePolls Flask/Jade Web Project Génère la même application qu’avec le modèle « Projet web Flask de sondage », mais en utilisant l’extension Jade pour le moteur de création de modèles Jinja.Generates the same app as with the "Polls Flask Web Project" template but using the Jade extension for the Jinja templating engine.

Installation des spécifications du projetInstalling project requirements

Quand vous créez un projet à partir d’un modèle propre au framework, une boîte de dialogue s’affiche pour vous permettre d’installer les packages nécessaires à l’aide de pip.When creating a project from a framework-specific template, a dialog appears to help you install the necessary packages using pip. Nous vous recommandons également d’utiliser un environnement virtuel pour les projets Web afin que les dépendances appropriées soient incluses lorsque vous publiez votre site web :We also recommend using a virtual environment for web projects so that the correct dependencies are included when you publish your web site:

Boîte de dialogue installant les packages nécessaires pour un modèle de projet

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 requirements.txt.If you're using source control, you typically omit then virtual environment folder as that environment can be recreated using only 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) dans l’invite illustrée ci-dessus, puis de désactiver la validation automatique avant de créer l’environnement virtuel.The best way to exclude the folder is to first select the I will install them myself in the prompt shown above, then disable auto-commit before creating the virtual environment. 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.For details, see Learning Django Tutorial - Steps 1-2 and 1-3 and Learning Flask Tutorial - Steps 1-2 and 1-3

Lors du déploiement sur Microsoft Azure App Service, sélectionnez une version de Python comme extension de site et installez manuellement les packages.When deploying to Microsoft Azure App Service, select a version of Python as a site extension and manually install 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.Also, because Azure App Service does not automatically install packages from a requirements.txt file when deployed from Visual Studio, follow the configuration details on aka.ms/PythonOnAppService.

Microsoft Azure Cloud Services prend en charge le fichier requirements.txt.Microsoft Azure Cloud Services does support the requirements.txt file. Voir Projets de service cloud Azure pour plus d’informations.See Azure cloud service projects for details.

DébogageDebugging

Quand un projet web est démarré à 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.When a web project is started for debugging, Visual Studio starts a local web server on a random port and opens your default browser to that address and port. Pour spécifier des options supplémentaires, cliquez avec le bouton droit sur le projet, sélectionnez Propriétés, puis sélectionnez l’onglet Lanceur web :To specify additional options, right-click the project, select Properties, and select the Web Launcher tab:

Propriétés du lanceur web pour le modèle web générique

Dans le groupe Débogage :In the Debug group:

  • Chemins de recherche, Arguments de script, Arguments de l’interpréteur et Chemin de l’interpréteur : ces options sont identiques à celles du débogage standardSearch Paths, Script Arguments, Interpreter Arguments, and Interpreter Path: these options are the same as for normal debugging
  • URL de lancement : spécifie l’URL qui est ouverte dans votre navigateur.Launch URL: specifies the URL that is opened in your browser. Ce champ est défini sur localhost par défaut.It defaults to localhost.
  • Numéro de port : port à utiliser si aucun n’est spécifié dans l’URL (Visual Studio sélectionne automatiquement un port par défaut).Port Number: the port to use if none is specified in the URL (Visual Studio selects one automatically by default). 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.This setting allows you to override the default value of the SERVER_PORT environment variable, which is used by the templates to configure the port the local debug server listens on.

Les propriétés des groupes Run Server Command (Commande du serveur d’exécution) et Debug Server Command (Commande du serveur de débogage) (ce dernier apparaissant sous le contenu présenté par l’image) déterminent la façon dont le serveur web est lancé.The properties in the Run Server Command and Debug Server Command groups (the latter is below what's show in the image) determine how the web server is launched. É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.Because many frameworks require the use of a script outside of the current project, the script can be configured here and the name of the startup module can be passed as a parameter.

  • Commande : il peut s’agir d’un script Python (fichier *.py), d’un nom de module (par exemple, python.exe -m module_name) ou d’une simple ligne de code (telle que python.exe -c "code").Command: can be a Python script (*.py file), a module name (as in, python.exe -m module_name), or a single line of code (as in, python.exe -c "code"). La valeur affichée dans la zone déroulante indique lequel de ces types est souhaité.The value in the drop-down indicates which of these types is intended.
  • Arguments : ces derniers sont transmis sur la ligne de commande derrière la commande.Arguments: these arguments are passed on the command line following the command.
  • Environnement : liste de paires NAME=VALUE séparées par un saut de ligne spécifiant les variables d’environnement.Environment: a newline-separated list of NAME=VALUE pairs specifying environment variables. Ces variables sont définies après toutes les propriétés susceptibles de modifier l’environnement, telles que le numéro de port et les chemins de recherche, et peuvent donc remplacer ces valeurs.These variables are set after all properties that may modify the environment, such as the port number and search paths, and so may overwrite these values.

Toute propriété de projet ou variable d’environnement peut être spécifiée avec la syntaxe MSBuild, par exemple : $(StartupFile) --port $(SERVER_PORT).Any project property or environment variable can be specified with MSBuild syntax, for example: $(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.$(StartupFile) is the relative path to the startup file and {StartupModule} is the importable name of the startup file. $(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.$(SERVER_HOST) and $(SERVER_PORT) are normal environment variables that are set by the Launch URL and Port Number properties, automatically, or by the Environment property.

Note

Les valeurs du groupe Run Server Command (Commande du serveur d’exécution) sont utilisées avec la commande Débogage > Démarrer le serveur ou Ctrl-F5 ; les valeurs du groupe Debog Server Command (Commande du serveur de débogage) sont utilisées avec la commande Débogage > Start Debug Server (Démarrer le serveur de débogage) ou F5.Values in Run Server Command are used with the Debug > Start Server command or Ctrl-F5; values in the Debug Server Command group are used with the Debug > Start Debug Server command or F5.

Exemple de configuration BottleSample Bottle configuration

Le modèle de projet Web Bottle inclut un code réutilisable qui effectue la configuration nécessaire.The Bottle Web Project template includes boilerplate code that does the necessary configuration. 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é :An imported bottle app may not include this code, however, in which case the following settings launch the app using the installed bottle module:

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

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

    • Commande : bottle (module)Command: bottle (module)
    • Arguments : --debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:appArguments --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.The --reload option is not recommended when using Visual Studio for debugging.

Exemple de configuration PyramidSample Pyramid configuration

Pour l’instant, la méthode de création recommandée pour les applications Pyramid consiste à utiliser l’outil en ligne de commande pcreate.Pyramid apps are currently best created using the pcreate command-line tool. Une fois qu’une application a été créée, elle peut être importée à l’aide du modèle À partir de code Python existant.Once an app has been created, it can be imported using the From existing Python code template. Après cela, sélectionnez la personnalisation Projet web générique pour configurer les options.After doing so, select the Generic Web Project customization to configure the options. Ces paramètres reposent sur l’hypothèse que Pyramid est installé dans un environnement virtuel à l’emplacement ..\env.These settings assume that Pyramid is installed into a virtual environment at ..\env.

  • Groupe Débogage :Debug group:

    • Port du serveur : 6543 (ou tout port configuré dans les fichiers .ini)Server Port: 6543 (or whatever is configured in the .ini files)
  • Groupe Run Server Command (Commande du serveur d’exécution) :Run Server Command group:

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

    • Commande : ..\env\scripts\pserve-script.py (script)Command: ..\env\scripts\pserve-script.py (script)
    • Arguments : Development.iniArguments: 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.You likely need to configure the Working Directory property of your project because Pyramid apps are typically one folder below the project root.

Autres configurationsOther 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.If you have settings for another framework that you would like to share, or if you'd like to request settings for another framework, open an issue on GitHub.

Convertir un projet en projet Azure Cloud ServiceConvert a project to Azure Cloud Service

La commande Convertir en projet Microsoft Azure Cloud Service (image ci-dessous) ajoute un projet de service cloud à votre solution.The Convert to Microsoft Azure Cloud Service Project command (image below) adds a cloud service project to your solution. Ce projet comprend les paramètres de déploiement et la configuration pour les machines virtuelles et les services à utiliser.This project includes the deployment settings and configuration for the virtual machines and services to be used. Utilisez la commande Publier sur le projet cloud à déployer sur Cloud Services. La commande Publier sur le projet Python effectue toujours le déploiement sur Sites web.Use the Publish command on the cloud project to deploy to Cloud Services; the Publish command on the Python project still deploys to Web Sites. Pour plus d’informations, consultez Projets de service cloud Azure.For more information, see Azure cloud service Projects.

Commande Convertir en projet Microsoft Azure Cloud Service

Voir aussiSee also