Dansa anmälan nätverk (4 / 6 steg)
Steg 4: Webbservern
Ett gemensamt verktyg för web prototyper är Heroku, som är en tjänst som låter dig att enkelt starta ett webbprogram. Det stöder en mängd olika web programramverk (standardiserat sätt att strukturera program som körs webbplatser) i en mängd olika språk, med bra dokumentation om hur man gör. Det eliminerar behovet av du kan snurra upp din egen Linux-server (som det döljer vackert under huven) som värd för webbprogrammet. Om du inte vet vad det betyder eller har någon aning hur man gör det, prisa himlen Heroku finns. Och för det mesta måste du göra för prototyper, det är gratis.
Inom Heroku finns det många web programramverk kan du gå med. Jag har varit kärleksfull enkelheten i Python och det enorma utbud av moduler som skapats för det, så jag bestämde mig att gå med Python kör kolven och flaska. Kolven är en enkel Python webbramverk som hanterar adressering av dina sidor, och utför logiska strukturer och åtkomst till databaser som behövs. Kolven använder sedan Pythonmodul flaska som en Mallmotor: flaska tar mestadels förifyllda HTML-mallar jag skapade och foder i dynamisk information från min databaser när webbplatsen öppnas. (tekniskt flaska kan göra allt kolven kan jag tycka, men det var rekommenderat till mig att använda kolven för routning med Heroku och en flaska för mallhantering).
Få en ansökan online
Du kan starta en fungerande webbapplikation på Heroku för första gången på en timme bara genom följande tutorials. De stora stegen är:
- skapa ett Heroku konto och konfigurera din dator med Heroku toolbelt
- skapa och namnge ny webbapplikation från Heroku's web interface (jag använde DanceButton)
- Välj ditt språk och ramen och distribuerar ett program (Python tutorial med kolven)
Använd din egen webbadress
Heroku tilldelar din ansökan en adress (vanligen APPNAME.herokuapp.com). Om du vill använda en egen domän för din applikation (till exempel jag ville ha www.istripdancing.com istället för dancebutton.herokuapp.com), måste du köpa din egen domän och dirigera om det till Heroku adress. Jag använde Hover för att köpa min domän för $10 för ett år. Jag har hört du kan få domäner billigare via andra tjänster, men jag har inte tittat in i det ännu. När du har köpt domänen, det är otroligt enkelt att vidarebefordra begäranden till din domän till Heroku app (se bild).
Heroku Detaljer
När du har allt och igång, om du inte gjort sånt här innan det finns flera verktyg du kommer att lära som du förvandla din första Heroku app för att göra din budgivning. Här är en kort översikt att få huvudet på rätt plats.
Herokus grundläggande ansökan löpande förlopp
Om du vill köra ett program i Heroku med Python och kolven, letar Heroku efter filen app.py, som måste struktureras enligt nyanserna i kolven. Innan du kör filen, tittar Heroku på filen requirements.txt för att avgöra vilka Pythonmoduler är krävs för att köra servern. Det finns en miljon Pythonmoduler och varje ansökan behöver oftast bara några moduler installerat för att köras. Heroku installerar dessa moduler, då snurrar upp en instans av Python kör din app. Det är viktigt att när du utvecklar din ansökan du förstår Python-Virtualenv (virtuella miljö) och hur du uppdaterar requirements.txt ordentligt (beskrivs nedan). App.py berättar Heroku vad man ska göra när en begäran görs i vissa adresser/rutter på din webbplats (en funktion för att webbservern ska köra är associerade med varje sträcka). Dessa ruttfunktioner tillbaka själva koden som ska visas i webbläsaren. Det enklaste exemplet framgår i Heroku komma igång tutorial: ansökan standardvägen returnerar bara texten "Hello World", som visas i webbläsaren när någon går till den adressen.
Skapa dynamiska webbsidor med Heroku
Om du vill returnera något mer intressant till webbläsaren, kan du returnera HTML som bestäms utifrån statligt av din server. För att göra detta, använde jag Python module flaska. Jag skapa en HTML-mall med formatering och statiska texten jag vill på min sida och sedan ange dynamisk information behållare i mallen med {{variabel}} (ett särskilt på flaska). För att fylla det utrymmet med information från min server, använda jag mallen funktion inom flaska i returraden av min kolv funktion (bottle.template(...)).
Förändras och omfördela din webbapplikation med Heroku
Med Heroku arbeta du på lokala filer på din dator, sedan när du vill uppdatera din server, du "push" till Heroku med Git. Git är en burk med maskar i en burk med maskar, men i huvudsak är det ett versionshanteringssystem för kod - ett finare sätt att säga det håller reda på dina ändringar för dig. Du skriver din kod, och varje gång du vill Git att lagra din nuvarande kod, du "begå" dina ändringar och kan återställa din kod till varje stat som tidigare begåtts när du vill. Git kan ställas in att ha huvudsakliga revidering databas online (en gratis exempel är GitHub). I vårt fall, viktigaste databasen är Heroku, och när vi vill uppdatera servern, vi helt enkelt "push" våra senaste versionen till den. Du kan hitta detaljerna hur du använder Git med Heroku här. Om du vill lära dig mer på Git:
Arbetar lokalt
Beroenden kan vara en stor källa till huvudvärk för personer som använder Python på olika maskiner om inte du är försiktig. Tänk jag gjorde min egen Pythonmodul som låter mig kalla myModule.myFunction(), och jag använder det i min Python program. Om jag bara ge dig min Python fil utan modulen, har datorn ingen aning vad myModule hänvisar till. För att åtgärda detta, använder vi en virtuell miljö med Virtualenv, eller en isolerad förekomst av Python där vi har direkt kontroll över vad som är installerat, samt en väl utformad arbetsflöde för våra program som körs på olika maskiner. Ett enklare sätt att visualisera detta: du har två datorer, en som har Adobe Photoshop och Microsoft Office, den andra med ingen programvara. Excel-filer och bilder som du skapar på den första datorn kan inte öppnas på andra eftersom datorn inte har program (eller moduler) som vet hur man läsa filerna. En virtualenv skulle vara besläktad med att ha ett konto på varje dator som du kan logga in som har identiska program. När du börjar använda ett nytt program på ett konto, vill du ha en väg för samma konto på den andra datorn att ha det också, så att du kan öppna alla filer. Virtualenv är detta för Python.
Arbetsflödet för den virtuella miljön med Heroku är:
-setup Virtualenv
-Aktivera virtualenv
Källa venv/bin/aktivera-installera nya moduler med pip eller easy_install (installation chefer för Python)
-uppdatera requirements.txt av "frysning" Virtualenv beroenden i filen (requirements.txt håller koll på vilka moduler är installerade i virtualenv)
pip frysa > requirements.txtAlternativ förklaring av Virtualenv för dem som jag förvirrad (sorry!).
När du har Heroku, Git, och Virtualenv installationsprogrammet, och du har skrivit lite kod till din app.py fil, kan du köra ett test servern lokalt innan du trycker koden till Heroku, för att kontrollera att fungerar det först. Att köra en lokal server, medan i virtualenv i konsolen köras:
förman startaDetta kör en lokal server på 0.0.0.0:5000 i din webbläsare. Gå dit, testa funktionaliteten hos din server. Om fel dyker upp, webbläsaren kommer att visa dem och du kan kontrollera din konsol för debug-meddelanden.
När din nöjd med funktionaliteten i din server, i konsolen loppet:
Lägga till nya filer i den lokala kopian Gitgit lägga till.Spara eventuella ändringar till din lokala Git kopia
git begå -m "Lägg till din commit meddelande som beskriver de ändringar du gjort sedan förra gången."Kopierar du lokal kopia till Heroku kopia eller databasen
git push heroku master
Och viola! Din kod körs nu på Heroku och kan nås av Internetsen! Jag behöver fortfarande att beskriva hur du spelar in knappen intryckt händelser i servern med en databas, men jag kommer att göra detta senare. Nu på att prata med Facebook.