Använda Cookiecutter-tillägget
Cookiecutter tillhandahåller ett grafiskt användargränssnitt för att identifiera mallar, alternativ för indatamallar och skapa projekt och filer. Visual Studio 2017 och senare innehåller Cookiecutter-tillägget. Den kan installeras separat i tidigare versioner av Visual Studio.
I Visual Studio är Cookiecutter-tillägget tillgängligt under View>Cookiecutter Explorer:
Förutsättningar
Visual Studio. Om du vill installera produkten följer du stegen i Installera Visual Studio.
Python 3.3 eller senare (32-bitars eller 64-bitars) eller Anaconda 3 4.2 eller senare (32-bitars eller 64-bitars).
Om en lämplig Python-tolk inte är tillgänglig visar Visual Studio en varning.
Om du installerar en Python-tolk medan Visual Studio körs väljer du alternativet Home i verktygsfältet Cookiecutter Explorer för att identifiera den nyligen installerade tolken. Mer information finns i Skapa och hantera Python-miljöer i Visual Studio.
Arbeta med Cookiecutter Explorer
I Cookiecutter Explorerkan du bläddra bland och välja mallar, klona mallar till din lokala dator, ange mallalternativ och skapa kod från mallar.
Bläddra bland mallar
Du kan bläddra bland mallar i Cookiecutter Explorer för att se vad som redan är installerat och vad som är tillgängligt.
I Cookiecutter Explorerväljer du alternativet Start i verktygsfältet för att visa tillgängliga mallar.
Startsidan visar en lista med mallar att välja mellan, ordnade i fyra möjliga grupper:
Grupp Beskrivning Anteckningar installerat Mallar som är installerade på den lokala datorn. När en onlinemall används klonas lagringsplatsen automatiskt till en undermapp med ~/.cookiecutters. Du kan ta bort en installerad mall från systemet genom att välja Ta bort i Cookiecutter Explorer verktygsfältet. Rekommenderad Mallar som har laddats in från den rekommenderade flödet. Microsoft kurerar standardflödet. Du kan anpassa feeden genom att följa stegen i Ange Cookiecutter-alternativ. GitHub GitHub-sökresultat för nyckelordet "cookiecutter". Listan över git-lagringsplatser returneras i sidnumrerat format. När resultatlistan överskrider den aktuella vyn kan du välja alternativet Läs in fler för att visa nästa uppsättning sidnumrerade resultat i listan. Anpassad Alla anpassade mallar som definieras via Cookiecutter Explorer. När en anpassad mallplats anges i sökrutan Cookiecutter Explorer visas platsen i den här gruppen. Du kan definiera en anpassad mall genom att ange den fullständiga sökvägen till git-lagringsplatsen eller den fullständiga sökvägen till en mapp på den lokala disken. Om du vill visa eller dölja listan över tillgängliga mallar för en viss kategori väljer du pilen bredvid kategorin.
Klona mallar
Du kan arbeta med tillgängliga mallar i Cookiecutter Explorer för att skapa lokala kopior att arbeta från.
I Cookiecutter Explorerväljer du en mall. Information om den valda mallen visas längst ned på Cookiecutter Explorer startsida.
Mallsammanfattningen innehåller länkar för mer information om mallen. Du kan gå till GitHub-lagringsplatssidan för mallen, visa mallen Wikieller hitta rapporterade Problem.
Om du vill klona den valda mallen väljer du Nästa. Cookiecutter gör en lokal kopia av mallen.
Kloningsbeteendet beror på vilken typ av mall du väljer:
Malltyp | Uppförande |
---|---|
installerat | Om den valda mallen installerades i en tidigare session i Visual Studio tas den bort automatiskt och den senaste versionen installeras och klonas på den lokala datorn. |
rekommenderas | Den valda mallen klonas och installeras på den lokala datorn. |
GitHub | Den valda mallen klonas och installeras på den lokala datorn. |
Anpassad sökning |
-
URL-: Om du anger en anpassad URL för en git-lagringsplats i sökrutan Cookiecutter Explorer och sedan väljer mallen klonas och installeras den valda mallen på den lokala datorn. - Mappsökväg: Om du anger en anpassad mappsökväg i sökrutan och väljer mallen läser Visual Studio in mallen utan kloning. |
Viktig
Cookiecutter-mallar klonas under en enda mapp ~/.cookiecutters. Varje undermapp namnges efter git-lagringsplatsens namn, som inte innehåller GitHub-användarnamnet. Konflikter kan uppstå om du klonar olika mallar med samma namn som kommer från olika författare. I det här fallet hindrar Cookiecutter dig från att skriva över den befintliga mallen med en annan mall med samma namn. Om du vill installera den andra mallen måste du först ta bort den befintliga.
Ange mallalternativ
När du har installerat och klonar en mall lokalt visar Cookiecutter sidan Alternativ. På den här sidan kan du ange inställningar, till exempel platsen för mappsökvägen för genererade filer:
Varje Cookiecutter-mall definierar sin egen uppsättning alternativ. När ett standardvärde är tillgängligt för en inställning visar sidan Alternativ föreslagen text i motsvarande fält. Ett standardvärde kan vara ett kodfragment, ofta när det är ett dynamiskt värde som använder andra alternativ.
I det här exemplet definieras mallnamnet som cookiecutter-flask/cookiecutter-flask. När ett inställningsvärde kan ändras är fälttexten tillgänglig för redigering.
I fältet Skapa till anger du platsen för mappsökvägen där alla filer som genereras av Cookiecutter ska lagras.
Ange sedan andra önskade alternativ för mallen, till exempel:
- full_name: Det fullständiga namnet som ska tillämpas på mallen.
- e-post: Mallförfattarens e-postadress.
- github_username: GitHub-aliaset för mallförfattaren.
- python_version: Python-målversionen för webbappar som skapats från mallen.
Ange standardvärden med en konfigurationsfil
Du kan anpassa standardvärden för specifika alternativ med en användarkonfigurationsfil. När Cookiecutter-tillägget identifierar en användarkonfigurationsfil skriver det över mallens standardvärden med konfigurationsfilvärdena. Mer information om det här beteendet finns i avsnittet User Config i Cookiecutter-dokumentationen.
Avsluta angivna aktiviteter
Vissa mallar identifierar specifika Visual Studio-uppgifter som ska köras efter kodgenerering. Vanliga uppgifter är att öppna en webbläsare, öppna filer i redigeraren och installera beroenden. När en mall identifierar specifika uppgifter läggs inställningen Kör ytterligare aktiviteter efter slutförande till i listan med alternativ. Du kan konfigurera den här inställningen för att välja bort de angivna Visual Studio-uppgifterna.
Skapa kod från mallar
När du har angett mallalternativen är du redo för Cookiecutter att skapa projektfilerna och generera koden.
Dialogrutan visar en knapp efter listan med alternativ. Texten för knappen beror på mallen. Du kan se Skapa och öppna mapp, Lägg till i lösningoch så vidare.
På sidan Alternativ väljer du knappen som följer listan med alternativ, till exempel Skapa och öppna mapp eller Lägg till i lösning.
Cookiecutter genererar koden. Om utdatamappen inte är tom visas en varning.
Om du är bekant med mallens utdata och inte har något emot att skriva över filer väljer du OK för att stänga varningen.
Annars väljer du Avbryt, anger en tom mapp och kopierar sedan manuellt de skapade filerna till din icke-tomma utdata-mapp.
När Cookiecutter har skapat filerna öppnar Visual Studio mallprojektfilerna i Solution Explorer.
Ange alternativ för Cookiecutter
Cookiecutter-alternativ är tillgängliga via Tools>Options>Cookiecutter:
Alternativ | Beskrivning |
---|---|
Sök efter uppdaterade mallar | Styr om Cookiecutter automatiskt söker online efter uppdateringar av de installerade mallarna. |
URL för rekommenderat flöde | Platsen för den rekommenderade mallflödesfilen. Platsen kan vara en URL eller en sökväg till en lokal fil. Lämna URL:en tom om du vill använda microsofts standardflöde. Feeden innehåller en enkel lista över mallplatser, avgränsade med radbrytningar. Om du vill begära ändringar i det granskade flödet gör du en pull-begäran mot källan på GitHub. |
Visa hjälp | Styr synligheten för hjälpinformationsfältet överst i Cookiecutter-fönstret. |
Optimera Cookiecutter-mallar för Visual Studio
Cookiecutter-tillägget för Visual Studio stöder mallar som skapats för Cookiecutter v1.4. Mer information om hur du redigerar Cookiecutter-mallar finns i dokumentationen Cookiecutter.
Standardåtergivningen av mallvariabler beror på typen av data (sträng eller lista):
- String: Datatypen String använder en etikett för variabelnamnet, en textruta för att ange värdet och en vattenstämpel som visar standardvärdet. Ett verktygstips för textrutan visar standardvärdet.
- List: Datatypen Lista använder en etikett för variabelnamnet och en kombinationsruta för att välja ett värde. Ett verktygstips i kombinationsrutan visar standardvärdet.
Du kan förbättra renderingen genom att ange andra metadata i din cookiecutter.json fil som är specifik för Visual Studio (och ignoreras av Cookiecutter CLI). Alla egenskaper är valfria:
Egenskap | Beskrivning |
---|---|
label |
Anger den text som ska visas ovanför redigeraren för variabeln, i stället för namnet på variabeln. |
description |
Anger knappbeskrivningen som ska visas på redigeringskontrollen i stället för standardvärdet för variabeln. |
url |
Ändrar etiketten till en hyperlänk med ett verktygstips som visar URL:en. Om du väljer hyperlänken öppnas användarens standardwebbläsare till den URL:en. |
selector |
Tillåter anpassning av redigeraren för en variabel. Följande väljare stöds för närvarande: - string : Standardtextruta, standard för strängar. - list : Standardkombinationsruta, förval för listor. - yesno : Kombinationsruta för att välja mellan y och n , för strängar. - odbcConnection : Textruta med en ellipsknapp (...) som öppnar en dialogruta för databasanslutning. |
I följande exempel visas hur du anger återgivningsegenskaper:
{
"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"
}
}
}
Köra Visual Studio-uppgifter
Cookiecutter har en funktion som heter Post-Generate Hooks som gör att du kan köra godtycklig Python-kod när filerna har genererats. Även om funktionen är flexibel tillåter den inte enkel åtkomst till Visual Studio.
Du kan använda den här funktionen för att öppna en fil i Visual Studio-redigeraren eller dess webbläsare. Du kan också utlösa Visual Studio-användargränssnittet som uppmanar användaren att skapa en virtuell miljö och installera paketkrav.
För att tillåta dessa scenarier letar Visual Studio efter utökade metadata i filen cookiecutter.json. Den söker efter kommandon som ska köras när användaren öppnar de genererade filerna i Solution Explorer eller efter att filerna har lagts till i ett befintligt projekt. (Återigen kan användaren välja bort att köra uppgifterna genom att avmarkera alternativet Kör ytterligare uppgifter vid slutförandet i mallalternativet.)
I följande exempel visas hur du anger utökade metadata i cookiecutter.json-filen:
"_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"
}
]
Ange kommandona efter namn och använd det icke-lokaliserade (engelska) namnet för att arbeta med lokaliserade installationer av Visual Studio. Du kan testa och identifiera kommandonamn i fönstret Visual Studio Command.
Om du vill skicka ett enda argument anger du argumentet som en sträng som visas för name
metadata i föregående exempel.
Om du inte behöver skicka ett argument lämnar du värdet som en tom sträng eller utelämnar det från JSON-filen:
"_visual_studio_post_cmds": [
{
"name": "View.WebBrowser"
}
]
Använd en matris för flera argument. För omkopplare delar du upp omkopplaren och dess värde i separata argument och använder rätt citattecken, som du ser i det här exemplet:
"_visual_studio_post_cmds": [
{
"name": "File.OpenFile",
"args": [
"{{cookiecutter._output_folder_path}}\\read me.txt",
"/e:",
"Source Code (text) Editor"
]
}
]
Argument kan referera till andra Cookiecutter-variabler. I föregående exempel används den interna _output_folder_path
variabeln för att skapa en absolut sökväg för att generera filer.
Kommandot Python.InstallProjectRequirements
fungerar bara när du lägger till filer i ett befintligt projekt. Den här begränsningen finns eftersom kommandot bearbetas av Python-projektet i Solution Exploreroch det inte finns något projekt för att ta emot meddelandet i Solution Explorer - Mappvy.
Felsöka mallproblem
I följande avsnitt finns tips om hur du felsöker din Python-miljö och kod när du arbetar med Cookiecutter.
Fel vid inläsning av mall
Vissa mallar kan använda ogiltiga datatyper i sin cookiecutter.json fil, till exempel boolesk. Du kan rapportera dessa instanser till mallförfattaren genom att välja länken Problem i fönstret med mallinformation.
Hook-skriptet misslyckades
Vissa mallar kanske använder skript som körs efter generering och som inte är kompatibla med Cookiecutter-användargränssnittet. Skript som till exempel frågar användaren om indata kan misslyckas på grund av brist på en terminalkonsol.
Hook-skript stöds inte i Windows
Om postskriptfilen är .shkanske den inte är associerad med ett program på din Windows-dator. Du kan se en dialogruta i Windows för att hitta ett kompatibelt program i Windows Store.
Mallar med kända problem
Du kan ta reda på om en mall har kända problem med hjälp av länken Problem i mallsammanfattningen i Cookiecutter Explorer:
Länken öppnar sidan GitHub-problem för mallen: