Delen via


Projectsjablonen voor Python-webtoepassingen

Python in Visual Studio ondersteunt het ontwikkelen van webprojecten in Bottle-, Flask- en Django-frameworks via projectsjablonen en een startprogramma voor foutopsporing dat kan worden geconfigureerd voor het afhandelen van verschillende frameworks. Deze sjablonen bevatten een requirements.txt-bestand om de benodigde afhankelijkheden te declareren. Wanneer u een project maakt op basis van een van deze sjablonen, wordt u gevraagd de afhankelijke pakketten te installeren, zoals verderop in dit artikel wordt beschreven in de installatievereisten .

U kunt ook de algemene webprojectsjabloon gebruiken voor andere frameworks, zoals Piramide. In dit geval worden er geen frameworks geïnstalleerd met de sjabloon. In plaats daarvan installeert u de benodigde pakketten in de omgeving die u voor het project gebruikt. Zie het venster Python-omgevingen - tabblad Pakket voor meer informatie.

Opties voor projectsjablonen

U maakt een project op basis van een sjabloon door Bestand>nieuw>project te selecteren in het werkbalkmenu. In het dialoogvenster Een nieuw project maken kunt u de lijst met sjablonen filteren om de beschikbare opties voor Python-webprojecten weer te geven. Voer sleuteltermen in het zoekvak in of gebruik de vervolgkeuzemenu's van het filter om Python als taal en web te selecteren als projecttype.

Schermopname van het dialoogvenster Een nieuw project maken met de sjablonen gefilterd om opties voor Python-web-apps in Visual Studio weer te geven.

Nadat u een sjabloon hebt geselecteerd, geeft u een naam op voor het project en de oplossing en stelt u opties in voor de oplossingsmap en Git-opslagplaats.

De algemene webprojectsjabloon biedt een leeg Visual Studio-project zonder code en maakt geen andere aannames dan een Python-project. De andere sjablonen zijn gebaseerd op de Bottle-, Flask- of Django-webframeworks en zijn gegroepeerd in drie categorieën, zoals beschreven in de volgende secties. De apps die door een van deze sjablonen zijn gemaakt, bevatten voldoende code om de app lokaal uit te voeren en fouten op te sporen. Elke sjabloon biedt ook het benodigde WSGI-app-object (python.org) voor gebruik met productiewebservers.

Lege groep

Alle webprojectsjablonen van het lege <framework> maken een project met meer of minder minimale standaardcode en de benodigde afhankelijkheden die zijn gedeclareerd in een requirements.txt-bestand.

Template Description
Leeg Bottle-webproject Genereert een minimale app in het app.py-bestand met een startpagina voor de / locatie en een /hello/<name> pagina die de <name> waarde weergeeft met behulp van een korte inlinepaginasjabloon.
Blanco Django-webproject Genereert een Django-project met de belangrijkste Django-sitestructuur, maar geen Django-apps. Zie Django-sjablonen en Learn Django Step 1 voor meer informatie.
Lege Flask-webproject Genereert een minimale app met één 'Hallo wereld!'-pagina voor de / locatie. Deze app is vergelijkbaar met het resultaat van het volgen van de gedetailleerde stappen in quickstart: Visual Studio gebruiken om uw eerste Python-web-app te maken. Zie Learn Flask Stap 1 voor meer informatie.

Webgroep

Alle <Framework> Web Project-sjablonen maken een starter-web-app met een identiek ontwerp, ongeacht het gekozen framework. De app heeft Home, Over en Contact pagina's, samen met een navigatiemenu en responsief ontwerp dat Bootstrap gebruikt. Elke app is op de juiste wijze geconfigureerd voor statische bestanden (CSS, JavaScript en lettertypen) en maakt gebruik van een paginasjabloonmechanisme dat geschikt is voor het framework.

Template Description
Bottle Web Project Hiermee wordt een app gegenereerd waarvan de statische bestanden zich in de statische map bevinden en via code in het app.py-bestand worden verwerkt. Routering voor de afzonderlijke pagina's bevindt zich in het routes.py-bestand . De map weergaven bevat de pagina-sjablonen.
Django Web Project Genereert een Django-project en een Django-app met drie pagina's, verificatieondersteuning en een SQLite-database (maar geen gegevensmodellen). Zie Django-sjablonen en Learn Django Step 4 voor meer informatie.
Flask-webproject Hiermee wordt een app gegenereerd waarvan de statische bestanden zich in de statische map bevinden. Code in het views.py bestand handelt routering af met paginasjablonen die gebruikmaken van de Jinja-engine die zich in de templates map bevindt. Het runserver.py-bestand bevat opstartcode.

Installatievereisten

Wanneer u een project maakt op basis van een frameworkspecifieke sjabloon, biedt Visual Studio een dialoogvenster om u te helpen de benodigde pakketten te installeren met behulp van pip. We raden u ook aan om een virtuele omgeving voor webprojecten te gebruiken om ervoor te zorgen dat de juiste afhankelijkheden worden opgenomen wanneer u uw website publiceert:

Schermopname van het dialoogvenster voor het installeren van pakketten voor een projectsjabloon in Visual Studio.

Als u broncodebeheer gebruikt, laat u doorgaans de map van de virtuele omgeving weg omdat die omgeving alleen kan worden gemaakt met behulp van het requirements.txt-bestand . De beste manier om de map uit te sluiten, is door eerst de optie ik installeer ze zelf te selecteren en vervolgens automatisch doorvoeren uit te schakelen voordat de virtuele omgeving wordt gemaakt. Zie Git-besturingselementen bekijken in de Learn Django Tutorial en Learn Flask Tutorial voor meer informatie.

Wanneer u implementeert in Microsoft Azure App Service, selecteert u een versie van Python als site-extensie en installeert u pakketten handmatig. Omdat Azure App Service niet automatisch pakketten installeert vanuit een requirements.txt-bestand wanneer het vanuit Visual Studio wordt geïmplementeerd, volgt u de configuratiedetails op aka.ms/PythonOnAppService.

Opties voor foutopsporing

Wanneer u een webproject opent voor foutopsporing, start Visual Studio een lokale webserver op een willekeurige poort en opent u uw standaardbrowser naar dat adres en die poort. Als u meer opties wilt opgeven, klikt u met de rechtermuisknop op het project in Solution Explorer en selecteert u Eigenschappen. Selecteer op de pagina Eigenschappen het tabblad Foutopsporing .

Schermopname van de Weblauncher eigenschappen voor de standaard webtemplate in Visual Studio.

Er zijn drie groepen algemene configuratieopties voor het opsporen van fouten in het project. De groep Uitvoeren bevat de volgende eigenschappen:

  • De opties zoekpaden, scriptargumenten, interpreterpad en interpreterargumenten zijn hetzelfde als voor normale foutopsporing.
  • De start-URL geeft de URL op die wordt geopend in uw browser. De standaardlocatie is localhost.
  • Het poortnummer identificeert de poort die moet worden gebruikt, als er geen is opgegeven in de URL (Visual Studio selecteert er automatisch een standaard). Met deze instelling kunt u de standaardwaarde van de SERVER_PORT omgevingsvariabele overschrijven. Deze wordt gebruikt door de sjablonen om te configureren op welke poort de lokale foutopsporingsserver luistert.
  • De lijst Omgeving definieert variabelen die moeten worden ingesteld in het spawned-proces. De indeling is een door nieuwe regels gescheiden lijst <NAME>=<VALUE> met paren.

De eigenschappen in de groepen Run Server Command en Debug Server Command bepalen hoe de webserver wordt gestart. Omdat veel frameworks het gebruik van een script buiten het huidige project vereisen, kan het script hier worden geconfigureerd en kan de naam van de opstartmodule worden doorgegeven als parameter.

  • De opdracht kan een Python-script (*.py bestand), een modulenaam (zoals in, python.exe -m module_name) of één regel code (zoals in, python.exe -c "code"). De waarde in de vervolgkeuzelijst geeft aan welk type is bedoeld.
  • De lijst met argumenten wordt doorgegeven op de opdrachtregel na de opdracht.
  • Opnieuw definieert de lijst Omgeving variabelen die moeten worden ingesteld na alle eigenschappen die de omgeving kunnen wijzigen, zoals het poortnummer en de zoekpaden. Deze variabelewaarden kunnen andere eigenschapswaarden overschrijven.

Elke projecteigenschap of omgevingsvariabele kan worden opgegeven met MSBuild-syntaxis, zoals $(StartupFile) --port $(SERVER_PORT). $(StartupFile) is het relatieve pad naar het opstartbestand en {StartupModule} is de importeerbare naam van het opstartbestand. $(SERVER_HOST) en $(SERVER_PORT) zijn normale omgevingsvariabelen die zijn ingesteld door de eigenschappen Start-URL en Poortnummer , automatisch of door de eigenschap Omgeving .

Opmerking

Waarden in Serveropdracht uitvoeren worden gebruikt met de Foutopsporing>Server starten opdracht of de sneltoets Ctrl+F5. Waarden in de Foutopsporingserver-opdrachtgroep worden gebruikt met de opdracht Foutopsporing>Start Foutopsporingserver of F5.

Voorbeeld van configuratie van flessen

De Sjabloon Bottle Web Project bevat standaardcode waarmee de benodigde configuratie wordt uitgevoerd. Een geïmporteerde bottle-app bevat deze code mogelijk niet. In dat geval starten de volgende instellingen de app echter met behulp van de geïnstalleerde bottle module:

  • Serveropdrachtgroep uitvoeren :

    • Opdracht: bottle (module)
    • Argumenten: --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
  • Foutopsporing voor serveropdrachtgroep :

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

De --reload optie wordt niet aanbevolen bij het gebruik van Visual Studio voor foutopsporing.

Voorbeeld van piramideconfiguratie

Piramide-apps kunnen momenteel het beste worden gemaakt met behulp van het pcreate opdrachtregelprogramma. Nadat u de app hebt gemaakt, kan deze worden geïmporteerd met behulp van de sjabloon van bestaande Python-code. Nadat het importeren is voltooid, selecteert u de algemene webprojectaanpassing om de opties te configureren. Bij deze instellingen wordt ervan uitgegaan dat Pyramid is geïnstalleerd in een virtuele omgeving op de ..\env locatie.

  • Groep uitvoeren :

    • Poortnummer: 6543 (of wat is geconfigureerd in de .ini bestanden)
  • Serveropdrachtgroep uitvoeren :

    • Opdracht: ..\env\scripts\pserve-script.py (script)
    • Argumenten: Production.ini
  • Debug Serveropdracht groep:

    • Opdracht: ..\env\scripts\pserve-script.py (script)
    • Argumenten: Development.ini

Aanbeveling

Waarschijnlijk moet u de eigenschap Werkmap van uw project configureren, omdat piramide-apps doorgaans één map onder de hoofdmap van het project zijn.

Andere configuraties

Als u instellingen hebt voor een ander framework dat u wilt delen of als u instellingen voor een ander framework wilt aanvragen, opent u een probleem op GitHub.