Projektvorlagen für Python-Webanwendungen
Python in Visual Studio unterstützt das Entwickeln von Webprojekten in Bottle-, Flask- und Django-Frameworks mit Projektvorlagen und einem Debugstartprogramm, das so konfiguriert werden kann, dass es mehrere Frameworks behandeln kann. Diese Vorlagen enthalten eine requirements.txt-Datei, um die erforderlichen Abhängigkeiten zu deklarieren. Wenn Sie ein Projekt aus einer dieser Vorlagen erstellen, fordert Visual Studio Sie auf, die abhängigen Pakete zu installieren, wie unter Installationsanforderungen weiter unten in diesem Artikel beschrieben.
Sie können auch die generische Vorlage Webprojekt für andere Frameworks wie z.B Pyramid verwenden. In diesem Fall werden keine Frameworks mit der Vorlage installiert. Stattdessen installieren Sie die erforderlichen Pakete in der Umgebung, die Sie für das Projekt verwenden. Weitere Informationen finden Sie im Fenster „Python environments“ – Registerkarte „Package“.
Optionen für Projektvorlagen
Sie erstellen ein Projekt aus einer Vorlage, indem Sie File>New>Project aus dem Symbolleistenmenü wählen. Im Dialogfeld Create a new project können Sie die Liste der Vorlagen filtern, um die für Python-Webprojekte verfügbaren Optionen anzuzeigen. Geben Sie Schlüsselbegriffe in das Feld Search ein, oder verwenden Sie die Filter-Dropdown-Menüs, um Python als Sprache und Web als Projekttyp auszuwählen.
Nachdem Sie eine Vorlage ausgewählt haben, geben Sie einen Namen für das Projekt und die Lösung an und legen Optionen für das Lösungsverzeichnis und das Git-Repository fest.
Die generische Vorlage Web Project stellt ein leeres Visual Studio-Projekt ohne Code zur Verfügung und macht keine anderen Annahmen, als dass es sich um ein Python-Projekt handelt. Die anderen Vorlagen basieren auf den Web-Frameworks Bottle, Flask oder Django und sind in drei Kategorien unterteilt, die in den folgenden Abschnitten beschrieben werden. Apps, die mit diesen Vorlagen erstellt werden, enthalten ausreichend Code, um sie lokal auszuführen und zu debuggen. Jede Vorlage bietet auch das erforderliche WSGI-App-Objekt (python.org) für die Verwendung mit Produktions-Webservern.
Leere Gruppe
Alle Vorlagen für leere <Framework> Webprojekte erstellen ein Projekt mit mehr oder weniger gering gehaltenen Codebausteinen und den erforderlichen Abhängigkeiten, die in einer requirements.txt-Datei deklariert sind.
Vorlage | Beschreibung |
---|---|
Leeres Bottle-Webprojekt | Erzeugt eine Minimal-App in der Datei app.py mit einer Startseite für den Standort / und einer Seite /hello/<name> , die den Wert <name> wiedergibt, indem eine kurze Inline-Seitenvorlage verwendet wird. |
Leeres Django-Webprojekt | Generiert ein Django-Projekt mit der grundlegenden Django-Websitestruktur, aber ohne Django-Apps. Weitere Informationen finden Sie unter Django-Vorlagen und im Django Tutorial (Schritt 1). |
Leeres Flask-Webprojekt | Erzeugt eine Minimal-App mit einer einzigen „Hello World!“-Seite für den Standort / . Diese App ähnelt dem Ergebnis der detaillierten exemplarischen Vorgehensweise unter Schnellstart: Erstellen einer ersten Python-Web-App mit Visual Studio. Weitere Informationen finden Sie unter Learn Flask Step 1. |
Web-Gruppe
Alle Vorlagen für <Framework>-Webprojekte erstellen eine Web-App mit einem identischen Design, unabhängig vom ausgewählten Framework. Die App verfügt über die Seiten Home, About und Contact sowie eine Navigationsmenüleiste und ein responsives Design, das Bootstrap verwendet. Jede App wird entsprechend der statischen Serverdateien (CSS, JavaScript und Schriftarten) konfiguriert und verwendet einen Seitenvorlagenmechanismus entsprechend dem Framework.
Vorlage | Beschreibung |
---|---|
Bottle-Webprojekt | Erzeugt eine Anwendung, deren statische Dateien im Ordner static enthalten sind und durch Code in der Datei app.py behandelt werden. Das Routing für die einzelnen Seiten ist in der Datei routes.py enthalten. Der Ordner views enthält die Seitenvorlagen. |
Django-Webprojekt | Generiert ein Django-Projekt und eine Django-App mit drei Seiten, Authentifizierungsunterstützung und einer SQLite-Datenbank (jedoch ohne Datenmodelle). Weitere Informationen finden Sie unter Django-Vorlagen und im Django Tutorial (Schritt 4). |
Flask-Webprojekt | Generiert eine App, bei der die statischen Dateien im Ordner Static enthalten sind. Der Code in der Datei views.py behandelt das Routing mit Seitenvorlagen, die die Jinja-Engine verwenden, die im Ordner templates enthalten ist. Die Datei runserver.py enthält den Startcode. |
Installationsanforderungen
Wenn Sie ein Projekt aus einer Framework-spezifischen Vorlage erstellen, bietet Visual Studio ein Dialogfeld, das Sie bei der Installation der erforderlichen Pakete mithilfe von pip unterstützt. Wir empfehlen außerdem die Verwendung einer virtuellen Umgebung für Webprojekte, um sicherzustellen, dass die richtigen Abhängigkeiten enthalten sind, wenn Sie Ihre Website veröffentlichen:
Wenn Sie die Versionskontrolle verwenden, lassen Sie normalerweise den Ordner für die virtuelle Umgebung weg, da diese Umgebung nur mit der Datei requirements.txt neu erstellt werden kann. Am besten schließen Sie den Ordner aus, indem Sie zunächst die Option I will install them myself (Ich installiere sie selbst) auswählen und dann die automatische Bestätigung deaktivieren, bevor Sie die virtuelle Umgebung erstellen. Weitere Informationen finden Sie unter Untersuchen von Git-Steuerelementen im Lernprogramm Django und Lernprogramm Flask.
Wenn Sie auf Microsoft Azure App Service bereitstellen, wählen Sie eine Python-Version als Website-Erweiterung und installieren Sie die Pakete manuell. Da Pakete in Azure App Service bei Bereitstellung über Visual Studio nicht automatisch anhand einer requirements.txt-Datei installiert werden, befolgen Sie außerdem die Konfigurationsdetails unter aka.ms/PythonOnAppService.
Debugoptionen
Wenn Sie ein Webprojekt zum Debuggen öffnen, startet Visual Studio einen lokalen Webserver an einem zufälligen Port und öffnet Ihren Standardbrowser für diese Adresse und diesen Port. Um weitere Optionen festzulegen, klicken Sie mit der rechten Maustaste auf das Projekt in Solution Explorer und wählen Sie Properties. Wählen Sie auf der Seite Properties die Registerkarte Debug .
Es gibt drei Gruppen gemeinsamer Konfigurationsoptionen für das Debuggen des Projekts. Die Gruppe Run umfasst die folgenden Eigenschaften:
- Die Optionen Search Paths, Script Arguments, Interpreter Path und Interpreter Arguments sind dieselben wie für normal debugging.
- Die Launch URL gibt die URL an, die in Ihrem Browser geöffnet wird. Der Standardspeicherort ist
localhost
. - Die Port Number identifiziert den zu verwendenden Port, wenn in der URL keiner angegeben ist (Visual Studio wählt standardmäßig automatisch einen aus). Mit dieser Einstellung können Sie den Standardwert der Umgebungsvariablen
SERVER_PORT
überschreiben, die von den Templates verwendet wird, um den Port zu konfigurieren, an dem der lokale Debug-Server lauscht. - Die Liste Environment definiert die Variablen, die im gespawnten Prozess gesetzt werden sollen. Das Format ist eine durch neue Zeilen getrennte Liste von
<NAME>=<VALUE>
-Paaren.
Die Eigenschaften in den Gruppen Run Server Command und Debug Server Command bestimmen, wie der Webserver gestartet wird. Da für viele Frameworks die Verwendung eines Skripts außerhalb des aktuellen Projekts erforderlich ist, kann das Skript hier konfiguriert und der Name des Startmoduls als Parameter übergeben werden.
- Der -Befehl kann ein Python-Skript (*.py file), ein Modulname (wie in,
python.exe -m module_name
) oder eine einzelne Codezeile (wie in,python.exe -c "code"
sein). Der Wert in der Dropdown-Box gibt an, welcher Typ gemeint ist. - Die Liste der Argumente wird in der Befehlszeile nach dem Befehl übergeben.
- Auch hier definiert die Liste Environment Variablen, die nach allen Eigenschaften, die die Umgebung verändern könnten, wie z. B. die Portnummer und die Suchpfade, zu setzen sind. Diese variablen Werte können andere Eigenschaftswerte überschreiben.
Jede Projekteigenschaft oder Umgebungsvariable kann mit der MSBuild-Syntax angegeben werden, z. B. $(StartupFile) --port $(SERVER_PORT)
. $(StartupFile)
ist der relative Pfad zur Startdatei, und {StartupModule}
ist der importierbare Name der Startdatei. $(SERVER_HOST)
und $(SERVER_PORT)
sind normale Umgebungsvariablen, die durch die Eigenschaften Start-URL und Portnummer, automatisch oder durch die Eigenschaft Umgebung festgelegt werden.
Hinweis
Werte in Run Server Command werden mit dem Befehl Debug>Start Server oder dem Tastaturkürzel Ctrl+F5 verwendet. Werte in der Gruppe Debug Server Command werden mit dem Befehl Debug>Start Debug Server oder F5 verwendet.
Beispiel für eine Bottle-Konfiguration
Die Vorlage Bottle-Webprojekt enthält Codebausteine, die die erforderliche Konfiguration vornehmen. Eine importierte Bottlenanwendung enthält diesen Code möglicherweise nicht. In diesem Fall starten die folgenden Einstellungen die Anwendung unter Verwendung des installierten Moduls bottle
:
Gruppe Serverbefehl ausführen:
- Befehl:
bottle
(Modul) - Argumente:
--bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
- Befehl:
Gruppe Debugserverbefehl:
- Befehl:
bottle
(Modul) - Argumente:
--debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
- Befehl:
Die Option --reload
wird nicht empfohlen, wenn Sie Visual Studio zum Debuggen verwenden.
Beispiel für eine Pyramid-Konfiguration
Pyramid-Anwendungen lassen sich derzeit am besten mit dem Befehlszeilen-Tool pcreate
erstellen. Nachdem Sie die Anwendung erstellt haben, kann sie mit der Vorlage From existing Python code importiert werden. Nachdem der Import abgeschlossen ist, wählen Sie die Anpassung Generic Web Project, um die Optionen zu konfigurieren. Diese Einstellungen gehen davon aus, dass Pyramid in einer virtuellen Umgebung unter ..\env
installiert ist.
Führen Sie die Gruppe aus:
- Portnummer: 6543 (oder was auch immer in den .ini-Dateien konfiguriert ist)
Gruppe Serverbefehl ausführen:
- Befehl:
..\env\scripts\pserve-script.py
(Skript) - Argumente:
Production.ini
- Befehl:
Gruppe Debugserverbefehl:
- Befehl:
..\env\scripts\pserve-script.py
(Skript) - Argumente:
Development.ini
- Befehl:
Tipp
Wahrscheinlich müssen Sie die Eigenschaft Arbeitsverzeichnis Ihres Projekts konfigurieren, da Pyramid-Apps sich in der Regel eine Verzeichnisebene unterhalb des Projektstamms befinden.
Weitere Konfigurationen
Wenn Sie Einstellungen für ein anderes Framework verwenden, die Sie teilen möchten, oder wenn Sie Einstellungen für ein anderes Framework anfordern möchten, öffnen Sie ein Problem in GitHub.