Delen via


De Cookiecutter-extensie gebruiken

Cookiecutter- biedt een grafische gebruikersinterface voor het detecteren van sjablonen, invoersjabloonopties en het maken van projecten en bestanden. Visual Studio 2017 en hoger bevat de Cookiecutter-extensie. Het kan afzonderlijk worden geïnstalleerd in eerdere versies van Visual Studio.

In Visual Studio is de Cookiecutter-extensie beschikbaar onder View>Cookiecutter Explorer:

Schermopname van het hoofdvenster voor Cookiecutter Explorer in Visual Studio.

Voorwaarden

  • Visual Studio. Volg de stappen in Visual Studio installerenom het product te installeren.

  • Python 3.3 of hoger (32-bit of 64-bit) of Anaconda 3 4.2 of hoger (32-bit of 64-bit).

    • Als er geen geschikte Python-interpreter beschikbaar is, wordt in Visual Studio een waarschuwing weergegeven.

    • Als u een Python-interpreter installeert terwijl Visual Studio wordt uitgevoerd, selecteert u de optie Startpagina op de werkbalk Cookiecutter Explorer om de zojuist geïnstalleerde interpreter te detecteren. Zie Python-omgevingen maken en beheren in Visual Studiovoor meer informatie.

Werken met Cookiecutter Explorer

In Cookiecutter Explorerkunt u door sjablonen bladeren en selecteren, sjablonen klonen op uw lokale computer, sjabloonopties instellen en code maken op basis van sjablonen.

Sjablonen bekijken

U kunt door sjablonen bladeren in Cookiecutter Explorer om te zien wat er al is geïnstalleerd en wat er beschikbaar is.

  1. Selecteer in Cookiecutter Explorerde optie Home op de werkbalk om de beschikbare sjablonen weer te geven.

    Schermopname van de startpagina voor Cookiecutter Explorer in Visual Studio met sjablonen die worden vermeld voor de categorieën Aanbevolen en GitHub.

    Op de startpagina ziet u een lijst met sjablonen waaruit u kunt kiezen, ingedeeld in vier mogelijke groepen:

    Groep Beschrijving Notities
    geïnstalleerde Sjablonen die op uw lokale computer zijn geïnstalleerd. Wanneer een onlinesjabloon wordt gebruikt, wordt de opslagplaats automatisch gekloond naar een submap van ~/.cookiecutters. U kunt een geïnstalleerde sjabloon uit uw systeem verwijderen door Verwijderen te selecteren op de werkbalk Cookiecutter Explorer.
    Aanbevolen Sjablonen die zijn geladen vanuit de aanbevolen feed. Microsoft cureert de standaardfeed. U kunt de feed aanpassen door de stappen in Cookiecutter-opties instellente volgen.
    GitHub- GitHub-zoekresultaten voor het trefwoord 'cookiecutter'. De lijst met Git-opslagplaatsen wordt geretourneerd in gepagineerde vorm. Wanneer de lijst met resultaten de huidige weergave overschrijdt, kunt u de optie Meer laden selecteren om de volgende set gepagineerde resultaten in de lijst weer te geven.
    aangepaste Aangepaste sjablonen die zijn gedefinieerd via Cookiecutter Explorer. Wanneer een aangepaste sjabloonlocatie wordt ingevoerd in het Cookiecutter Explorer zoekvak, wordt de locatie in deze groep weergegeven. U kunt een aangepaste sjabloon definiëren door het volledige pad naar de Git-opslagplaats in te voeren of het volledige pad naar een map op uw lokale schijf.
  2. Als u de lijst met beschikbare sjablonen voor een specifieke categorie wilt weergeven of verbergen, selecteert u de pijl naast de categorie.

Sjablonen klonen

U kunt werken met beschikbare sjablonen in Cookiecutter Explorer om lokale kopieën te maken van waaruit moet worden gewerkt.

  1. Selecteer een sjabloon in Cookiecutter Explorer. Informatie over de geselecteerde sjabloon wordt onderaan de Cookiecutter Explorer startpagina weergegeven.

    Schermopname van het selecteren van een sjabloon voor het klonen in Cookiecutter Explorer in Visual Studio.

    De samenvatting van de sjabloon bevat koppelingen voor meer informatie over de sjabloon. U kunt naar de GitHub-opslagplaats pagina gaan voor de sjabloon, de sjabloon Wiki bekijken, of de gerapporteerde Problemen vinden.

  2. Als u de geselecteerde sjabloon wilt klonen, selecteert u Volgende. Cookiecutter maakt een lokale kopie van de sjabloon.

Het kloongedrag is afhankelijk van het type sjabloon dat u selecteert:

Sjabloontype Gedrag
Geïnstalleerde Als de geselecteerde sjabloon is geïnstalleerd in een vorige sessie van Visual Studio, wordt deze automatisch verwijderd en wordt de nieuwste versie geïnstalleerd en gekloond op uw lokale computer.
Aanbevolen De geselecteerde sjabloon wordt gekloond en geïnstalleerd op uw lokale computer.
GitHub- De geselecteerde sjabloon wordt gekloond en geïnstalleerd op uw lokale computer.
aangepaste zoekopdrachten - URL: als u een aangepaste URL voor een Git-opslagplaats invoert in het zoekvak Cookiecutter Explorer en vervolgens de sjabloon selecteert, wordt de geselecteerde sjabloon gekloond en geïnstalleerd op uw lokale computer.
- mappad: Als u een aangepast mappad in het zoekvak invoert en de sjabloon selecteert, wordt deze sjabloon door Visual Studio geladen zonder te klonen.

Belangrijk

Cookiecutter-sjablonen worden gekloond onder één map ~/.cookiecutters. Elke submap heeft de naam van de Git-opslagplaats, die niet de GitHub-gebruikersnaam bevat. Er kunnen conflicten optreden als u verschillende sjablonen kloont met dezelfde naam die afkomstig zijn van verschillende auteurs. In dit geval voorkomt Cookiecutter dat u de bestaande sjabloon overschrijft met een andere sjabloon met dezelfde naam. Als u de andere sjabloon wilt installeren, moet u eerst de bestaande sjabloon verwijderen.

Sjabloonopties instellen

Nadat u een sjabloon lokaal hebt geïnstalleerd en gekloond, wordt in Cookiecutter de pagina Opties weergegeven. Op deze pagina kunt u instellingen opgeven, zoals de locatie van het mappad voor gegenereerde bestanden:

Schermopname van de opties voor een nieuw geïnstalleerde en gekloonde sjabloon in Cookiecutter Explorer in Visual Studio.

Elke Cookiecutter-sjabloon definieert een eigen set opties. Wanneer een standaardwaarde beschikbaar is voor een instelling, toont de opties pagina voorgestelde tekst in het bijbehorende veld. Een standaardwaarde kan een codefragment zijn, vaak wanneer het een dynamische waarde is die gebruikmaakt van andere opties.

In dit voorbeeld wordt de sjabloonnaam gedefinieerd als cookiecutter-flask/cookiecutter-flask. Wanneer een instellingswaarde kan worden gewijzigd, is de veldtekst beschikbaar voor bewerking.

  1. Voer in het veld Pad creëren naar de locatie van het mappad voor bestanden die door Cookiecutter worden gegenereerd in.

  2. Stel vervolgens andere gewenste opties voor de sjabloon in, zoals:

    • full_name: de volledige naam die moet worden toegepast op de sjabloon.
    • e-mail: het e-mailadres van de auteur van de sjabloon.
    • github_username: de GitHub-alias van de auteur van de sjabloon.
    • python_version: de Python-doelversie voor web-apps die zijn gemaakt op basis van de sjabloon.

Standaardwaarden instellen met een configuratiebestand

U kunt standaardwaarden aanpassen voor specifieke opties met een gebruikersconfiguratiebestand. Wanneer de Cookiecutter-extensie een gebruikersconfiguratiebestand detecteert, worden de standaardwaarden van de sjabloon overschreven met de waarden van het configuratiebestand. Zie de sectie User Config van de cookiecutter-documentatie voor meer informatie over dit gedrag.

Afmelden van opgegeven taken

Sommige sjablonen identificeren specifieke Visual Studio-taken die moeten worden uitgevoerd na het genereren van code. Veelvoorkomende taken zijn het openen van een webbrowser, het openen van bestanden in de editor en het installeren van afhankelijkheden. Wanneer een sjabloon specifieke taken identificeert, wordt de Aanvullende taken uitvoeren na voltooiing instelling toegevoegd aan de lijst met opties. U kunt deze instelling zo configureren dat u zich afmeldt voor de opgegeven Visual Studio-taken.

Code maken op sjablonen

Nadat u de sjabloonopties hebt ingesteld, bent u klaar voor Cookiecutter om de projectbestanden te maken en de code te genereren.

In het dialoogvenster wordt een knop weergegeven na de lijst met opties. De tekst voor de knop is afhankelijk van de sjabloon. Mogelijk ziet u Maken en openen van map, Toevoegen aan oplossing, enzovoort.

  1. Selecteer op de pagina Opties de knop die de lijst met opties volgt, zoals map maken en openen of Toevoegen aan oplossing.

    Schermopname van de knop Map maken en openen na de lijst met sjabloonopties.

    Cookiecutter genereert de code. Als de uitvoermap niet leeg is, wordt er een waarschuwing weergegeven.

    • Als u bekend bent met de uitvoer van de sjabloon en het niet erg vindt om bestanden te overschrijven, selecteert u OK om de waarschuwing te verwijderen.

    • Anders selecteert u Annuleren, selecteert u een lege map en kopieert u de gemaakte bestanden handmatig naar uw niet-lege uitvoermap.

  2. Nadat Cookiecutter de bestanden heeft gemaakt, opent Visual Studio de sjabloonprojectbestanden in Solution Explorer-.

Opties voor Cookiecutter instellen

Cookiecutter-opties zijn beschikbaar via Tools>Opties>Cookiecutter:

Schermopname met de opties voor Cookiecutter in Visual Studio.

Optie Beschrijving
Controleren op bijgewerkte sjablonen Hiermee bepaalt u of Cookiecutter automatisch online controleert op updates voor de geïnstalleerde sjablonen.
aanbevolen feed-URL De locatie van het aanbevolen sjablonenfeedbestand. De locatie kan een URL of een pad naar een lokaal bestand zijn. Laat de URL leeg om de standaard gecureerde Microsoft-feed te gebruiken. De feed biedt een eenvoudige lijst met sjabloonlocaties, gescheiden door regelafbrekingen. Als u wijzigingen in de gecureerde feed wilt aanvragen, maakt u een pull-aanvraag op de bron op GitHub.
Help- weergeven Hiermee bepaalt u de zichtbaarheid van de Help-informatiebalk boven aan het venster Cookiecutter.

Cookiecutter-sjablonen optimaliseren voor Visual Studio

De Cookiecutter-extensie voor Visual Studio ondersteunt sjablonen die zijn gemaakt voor Cookiecutter v1.4. Zie de Cookiecutter-documentatievoor meer informatie over het ontwerpen van Cookiecutter-sjablonen.

De standaardweergave van sjabloonvariabelen is afhankelijk van het type gegevens (tekenreeks of lijst):

  • tekenreeks: het gegevenstype Tekenreeks gebruikt een label voor de naam van de variabele, een tekstvak voor het invoeren van de waarde en een watermerk met de standaardwaarde. In een knopinfo in het tekstvak wordt de standaardwaarde weergegeven.
  • Lijst: het gegevenstype Lijst gebruikt een label voor de naam van de variabele en een keuzelijst met invoervak voor het selecteren van een waarde. In een tooltip op het keuzelijstje wordt de standaardwaarde weergegeven.

U kunt de weergave verbeteren door andere metagegevens op te geven in uw cookiecutter.json-bestand dat specifiek is voor Visual Studio (en genegeerd door de Cookiecutter CLI). Alle eigenschappen zijn optioneel:

Vastgoed / Eigendom (If the context calls for real estate or ownership) Beschrijving
label Hiermee geeft u de tekst op die moet worden weergegeven boven de editor voor de variabele, in plaats van de naam van de variabele.
description Hiermee specificeert u de tooltip die moet worden weergegeven in het bewerkingsveld, in plaats van de standaardwaarde daarvan voor die variabele.
url Zet het label om in een hyperlink met een tooltip die de URL toont. Als u de hyperlink selecteert, wordt de standaardbrowser van de gebruiker naar die URL geopend.
selector Hiermee kunt u de editor voor een variabele aanpassen. De volgende selectors worden momenteel ondersteund:
- string: standaardtekstvak, standaard voor tekenreeksen.
- list: Standaard keuzelijst met invoervak, standaard voor lijsten.
- yesno: keuzelijst met invoervak om te kiezen tussen y en n, voor tekenreeksen.
- odbcConnection: Tekstvak met een beletseltekenknop (...) waarmee een dialoogvenster voor de databaseverbinding wordt geopend.

In het volgende voorbeeld ziet u hoe u renderingeigenschappen instelt:

{
    "site_name": "web-app",
    "python_version": ["3.5.2"],
    "use_azure": "y",

    "_visual_studio": {
        "site_name": {
            "label": "Site name",
            "description": "E.g. <site-name>.azurewebsites.net (can only contain alphanumeric characters and `-`)"
        },
        "python_version": {
            "label": "Python version",
            "description": "The version of Python to run the site on"
        },
        "use_azure" : {
            "label": "Use Azure",
            "description": "Include Azure deployment files",
            "selector": "yesno",
            "url": "https://azure.microsoft.com"
        }
    }
}

Visual Studio-taken uitvoeren

Cookiecutter heeft een functie genaamd Post-Generate Hooks waarmee u willekeurige Python-code kunt uitvoeren nadat de bestanden zijn gegenereerd. Hoewel de functie flexibel is, is het niet mogelijk om eenvoudig toegang te krijgen tot Visual Studio.

U kunt deze functie gebruiken om een bestand te openen in de Visual Studio-editor of de webbrowser. U kunt ook de Visual Studio-gebruikersinterface activeren waarmee de gebruiker wordt gevraagd een virtuele omgeving te maken en pakketvereisten te installeren.

Om deze scenario's toe te staan, zoekt Visual Studio naar uitgebreide metagegevens in het cookiecutter.json-bestand. Er wordt gezocht naar de opdrachten die moeten worden uitgevoerd nadat de gebruiker de gegenereerde bestanden in Solution Explorer heeft geopend of nadat de bestanden aan een bestaand project zijn toegevoegd. (Opnieuw kan de gebruiker zich afmelden voor het uitvoeren van de taken door de Extra taken uitvoeren bij voltooiing sjabloonoptie uit te schakelen.)

In het volgende voorbeeld ziet u hoe u uitgebreide metagegevens instelt in het cookiecutter.json-bestand:

"_visual_studio_post_cmds": [
    {
        "name": "File.OpenFile",
        "args": "{{cookiecutter._output_folder_path}}\\readme.txt"
    },
    {
        "name": "Cookiecutter.ExternalWebBrowser",
        "args": "https://learn.microsoft.com"
    },
    {
        "name": "Python.InstallProjectRequirements",
        "args": "{{cookiecutter._output_folder_path}}\\dev-requirements.txt"
    }
]

Geef de opdrachten op naam op en gebruik de niet-gelokaliseerde (Engelse) naam om te werken aan gelokaliseerde installaties van Visual Studio. U kunt opdrachtnamen testen en ontdekken in het venster Command van Visual Studio.

Als u één argument wilt doorgeven, geeft u het argument op als een tekenreeks, zoals wordt weergegeven voor de name metagegevens in het vorige voorbeeld.

Als u geen argument hoeft door te geven, laat u de waarde staan als een lege tekenreeks of laat u deze weg uit het JSON-bestand:

"_visual_studio_post_cmds": [
    {
        "name": "View.WebBrowser"
    }
]

Gebruik een matrix voor meerdere argumenten. Voor schakelaars splitst u de schakelaar en de bijbehorende waarde in afzonderlijke argumenten en gebruikt u de juiste aanhalingstekens, zoals weergegeven in dit voorbeeld:

"_visual_studio_post_cmds": [
    {
        "name": "File.OpenFile",
        "args": [
            "{{cookiecutter._output_folder_path}}\\read me.txt",
            "/e:",
            "Source Code (text) Editor"
        ]
    }
]

Argumenten kunnen verwijzen naar andere Cookiecutter-variabelen. In het vorige voorbeeld wordt de interne _output_folder_path variabele gebruikt om een absoluut pad te vormen om bestanden te genereren.

De opdracht Python.InstallProjectRequirements werkt alleen wanneer u bestanden toevoegt aan een bestaand project. Deze beperking bestaat omdat de opdracht wordt verwerkt door het Python-project in Solution Exploreren er geen project is om het bericht te ontvangen in Solution Explorer - mapweergave.

Sjabloonproblemen oplossen

Raadpleeg de volgende secties voor tips over het oplossen van problemen met uw Python-omgeving en code bij het werken met Cookiecutter.

Fout bij het laden van sjabloon

Sommige sjablonen gebruiken mogelijk ongeldige gegevenstypen in hun cookiecutter.json bestand, zoals Booleaanse waarde. U kunt deze gevallen rapporteren aan de auteur van de sjabloon door de koppeling Problemen te selecteren in het sjablooninformatiepaneel.

Hookscript is mislukt

Sommige sjablonen kunnen post-generatie scripts gebruiken die niet compatibel zijn met de Cookiecutter-gebruikersinterface. Scripts die een query uitvoeren op de gebruiker voor invoer, kunnen bijvoorbeeld mislukken vanwege een gebrek aan een terminalconsole.

Hook-script wordt niet ondersteund in Windows

Als het postscriptbestand is .sh, is het mogelijk niet gekoppeld aan een toepassing op uw Windows-computer. Mogelijk ziet u een Windows-dialoogvensterprompt om een compatibele toepassing te vinden in de Windows Store.

Sjablonen met bekende problemen

U kunt nagaan of een sjabloon bekende problemen heeft met behulp van de koppeling Problemen in de sjabloonsamenvatting in Cookiecutter Explorer:

Schermopname van het openen van de lijst met bekende problemen voor een sjabloon in Cookiecutter Explorer.

De koppeling opent de pagina met problemen met GitHub voor de sjabloon:

Schermopname van de lijst met gerapporteerde problemen voor een sjabloon in GitHub.