Dansa anmälan nätverk (4 / 6 steg)

Steg 4: Webbservern



Val av server webbplats
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:

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.txt

Alternativ 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 starta

Detta 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 Git
git 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.

Se Steg
Relaterade Ämnen

Noteu: USB-fysiska anmälan enhet

Vad är Noteu?Vänligen klicka nedan för att besöka vår sida för kicken för Noteu och om dess intresserar du förbeställa en produktionsmodell.https://www.Kickstarter.com/projects/1600235162/No...Noteu är en USB-anordning för att meddela dig om något på...

Hur till göra oduglig anmälan ljud i Windows 10

Hur till göra oduglig Fönstren 10 anmälan ljud. Hur till vända bort anmälan ljud på Windows 10. Bli av med de irriterande anmälan ljud i Windows 10 dator. Denna handledning visar hur du inaktivera eller stänga anmälan & systemljud i Windows 10.Anmäla...

En Magic telefonen med kreativa sätt att anmälan

Eftersom detta är en telefon tävling ber om kreativa telefon idéer, jag bara lägger fram en telefon som jag gjorde år sedan.Jag är förvånad över att jag tog dessa bilder tillbaka då, måste tänka om det blir en telefon tävling från Seeed (jag gjorde d...

E-anmälan bell

önskar att datorn hade alla klockor och visselpipor? Du kan få minst halva det med detta projekt, en USB-drivna och -kontrollerad klocka som kan användas för e-postmeddelande eller ett sätt för andra saker som kräver en tillfredsställande "ding"...

System för anmälan av doft-imental

Jag måste börja med att berätta att detta är min första elektronik projekt. Jag fann det utmanande, men en riktigt rolig inlärning erfarenhet. Med hjälp av hur lätt littleBits är för nybörjare att använda och vissa fantastiska medarbetare, jag är sto...

Laptop Power Push anmälan

Jag slår vad om du kom hit på grund av din kärlek av teknik och automation? Du vill att alla dina enheter att förbindas med varandra så mycket som möjligt, och älskar tanken på dem tala tillsammans! Så låt mig börja med ett citat från ett blogginlägg...

Få offentliga IP ändra anmälan med RPi och Node.JS

Med en Raspberry PI hemma och ett verkligt behov av att, ibland åt det distans, om av ssh eller någon annan tjänst som jag ville ha ett enkelt sätt att alltid ha för hand min hem dynamiska offentliga IP-adressen. Också ett krav, utan att behöva prenu...

Windows 7 anmälan området anpassning

Windows 7 anmälan området anpassning från Quantum PC Support på Vimeo.Denna video visar dig hur du anpassar meddelandefältet i Windows 7....

LaundrEsp - tvätt maskin anmälan

Vår tvättmaskin är en kräsen maskin. Det kommer att sluta halvvägs igenom en cykel om belastningen är ojämn. Vi har haft problem för ett par år försöker balansera det och försöker olika belastning men vi har fortfarande problemet. Vad vanligtvis slut...

Förslutbara mat skålen med Twitter anmälan

Hej! Välkommen till min första Instructable! Här kommer jag att visa dig hur man gör min hemlagade förslutbara mat behållare som skickar ett Twitter-meddelande varje gång din sällskapsdjur går för att äta.Steg 1: material Här är vad du behöver för at...

Nya e-anmälan ljus

Detta Instructable gjorde jag en ny e-post ljusavisering.Det är en USB-dongel som börjar blinka när du får ett nytt e-postmeddelande.Om min dator är någonsin på, kan gör en stor video eller ladda ner något, jag snabbt se om jag har fått mail, även om...

Maila anmälan kapacitiv Touch dörrhandtaget larm (Puh!)

Jag har slutligen mitt i gymnasiet och andra saker, beslutat att ha lite kul och göra min första instructable. Om du har någon feedback för mig är frågor som du kan skriva ner dem i kommentarerna och jag ska försöka besvara dem.Detta instructable kom...

Intellekten Bunny smarta docka: Guest & inkräktaren anmälan

Hej evert alla, detta är min första Instructable på denna webbplats! För detta projekt vände jag en normal Intel Bunny docka till en smart docka med en Intel Edison.Denna Intel Bunny smarta docka kan upptäcka människor och reagerar på dem och om någo...

Noteu: USB-realtid anmälan enhet

Vad är Noteu?Vänligen klicka nedan för att besöka vår Kickstarter sida för mer information och om dess intresserar du förbeställa en produktionsmodell. https://www.Kickstarter.com/projects/Jackt/noteu-...Noteu är en av de första anpassningsbart, hack...

USB-realtid anmälan enhet

Vad är Noteu?Vänligen klicka nedan för att besöka vår Kickstarter sida för mer information och om dess intresserar du förbeställa en produktionsmodell.https://www.Kickstarter.com/projects/Jackt/noteu-u...Noteu är en av de första anpassningsbara, hack...

Nya Knex begrepp anmälan #3

kolla in de senaste objekt.Diverse Weapon Designs7 g 5: twisted Rod: detta är en knex stav twisted av en borrmaskin fäst i ena änden, medan den andra änden var hålls ordentligt på plats (av en knex motor). Detta har ännu inte testats (genom att skjut...

Nya Knex begrepp anmälan #4

kolla in de senaste objekt.Vapen22F14: High Power Pump Action Revolver: en pump åtgärder som tuppar en tändstiftet nära baksidan av pistolen med en sträng spunnet 180 grader bakåt och sedan framåt igen av två hjul. Denna konstruktion skulle vara myck...

Dog Walk anmälan

När på jobbet undrar jag om min hund var att få gick 12 eller så timme dagar och ofta lita på rumskamrater och vänner att ta ut henne skicka hunden kissa-mail. Så när koppel är tog bort den krok läser som inget hängande från det, efter promenaden är...

Akuta Fall anmälaren med panik-knappen

Varje år, en tredjedel till hälften av befolkningen 65 år och över erfarenhet faller. Fallen är den vanligaste orsaken till skador hos äldre vuxna och den vanligaste orsaken till dödsfall i de 75 år och äldre. För en människa, kan upplever minskad ob...