Stap 4: De webserver
Een gemeenschappelijk instrument voor web prototyping is Heroku, dat is een dienst die u toelaat om gemakkelijk een webtoepassing start. Het steunt een verscheidenheid van web-toepassingskaders (gestandaardiseerde manieren structuur-programma's die websites lopen) in een verscheidenheid van talen, met geweldige documentatie over hoe het te doen. Het elimineert de noodzaak voor u te draaien van uw eigen Linux server (die het prachtig verbergt onder de motorkap) voor het hosten van uw webtoepassing. Als u niet wat weet dat betekent of heb idee hoe te doen, loven de hemelen Heroku bestaat. En voor de meeste dingen die u zult moeten doen voor prototypes, het is gratis.
Er zijn vele web-toepassingskaders die kon je gaan met binnen Heroku. Ik heb de eenvoud van de Python en de grote variëteit aan modules gemaakt, dus heb ik besloten om te gaan met Python uitgevoerd kolf en fles lief geweest. Kolf is een eenvoudige Python web framework dat zorgt voor de aansturing van uw pagina's, en voert logica structuren en toegang krijgt tot databases als nodig. De Python module fles kolf wordt gebruikt als een template-engine: fles neemt meestal vooraf ingestelde HTML-sjablonen ik gemaakt en diervoeders in dynamische informatie uit mijn databases wanneer de website wordt geopend. (technisch fles kan doen alles kolf kan ik denken, maar het werd me aanbevolen aan kolf gebruikt voor de routering met Heroku en fles voor templating).
Ontvang een aanvraag online
Gewoon door de volgende tutorials kunt u een webtoepassing werken op Heroku voor de eerste keer in een uur starten. De belangrijke stappen zijn:
- Maak een Heroku account en stel uw computer met de Heroku toolbelt
- Maak en de naam van de nieuwe web-applicatie van de Heroku webinterface (ik gebruikte DanceButton)
- Kies uw voorkeurstaal en kader en implementeren van een toepassing (Python tutorial met behulp van de kolf)
Gebruik uw eigen webadres
Heroku wijst een adres (meestal APPNAME.herokuapp.com) toe aan uw toepassing. Als u wilt uw eigen domein gebruiken voor uw toepassing (bijvoorbeeld omdat ik wilde www.istripdancing.com in plaats van dancebutton.herokuapp.com), moet u kopen uw eigen domein en het omleiden naar het adres Heroku. Ik Beweeg mijn nieuw domein aanschaffen voor $10 voor een jaar gebruikt. Ik heb gehoord kunt u domeinen goedkoper krijgen door middel van andere diensten, maar ik heb niet gekeken naar het nog. Nadat u het domein hebt gekocht, het is ongelooflijk eenvoudig naar vooruit aanvragen voor uw domein naar de Heroku app (Zie momentopname).
Heroku details
Als u eenmaal alles omhoog en lopen, als je dit soort dingen niet gedaan voordat er verscheidene hulpmiddelen u zult leren aangezien u uw eerste Heroku app hiervoor uw biedingen morph. Hier is een kort overzicht te krijgen van uw hoofd op de juiste plaats.
Heroku de basistoepassing draaiend proces
Voor het uitvoeren van een toepassing in Heroku met Python en kolf, zoekt Heroku in het app.py bestand moet zijn gestructureerd volgens de nuances van de kolf. Voordat u het bestand uitvoert, kijkt Heroku het requirements.txt-bestand om te bepalen welke Python modules zijn vereist voor het uitvoeren van de server. Er zijn een miljoen Python modules en elke toepassing meestal alleen moet een paar modules geïnstalleerd als u wilt uitvoeren. Heroku installeert deze modules, dan draait een exemplaar van Python uw app in werking. Het is belangrijk dat als u uw toepassing ontwikkelt u begrijpt de Python-Virtualenv (virtuele omgeving) en het bijwerken van requirements.txt goed (hieronder beschreven). App.py vertelt Heroku wat te doen wanneer een aanvraag wordt gedaan aan bepaalde adressen/routes binnen uw site (een functie voor de webserver uit te voeren is gekoppeld aan elke route). Deze routering functies resulteren in de ruwe code in de browser moet worden weergegeven. Het eenvoudigste voorbeeld wordt aangetoond in het leerprogramma van Heroku aan de slag: de toepassing van de standaardroute geeft gewoon de tekst "Hello World", die zal worden weergegeven in de browser wanneer iemand naar dat adres gaat.
Het creëren van dynamische webpagina's met Heroku
Als u wilden voor terugzending iets interessanter naar de browser, retourneert u HTML-code wordt bepaald op basis van de status van uw server. Om dit te doen, gebruikte ik de Python module fles. Ik maak een HTML-sjabloon met alle opmaak en statische tekst die ik wil op mijn pagina, en geef vervolgens de dynamische informatie containers in de sjabloon {{variable}} (een bijzonder van fles). Om op te vullen die ruimte met informatie uit mijn server, gebruik ik de functie van de sjabloon binnen fles in de retourregel van mijn functie van de kolf (bottle.template(...)).
Wijzigen en herschikking van uw webtoepassing met Heroku
Met Heroku werkt u op lokale bestanden op uw computer, vervolgens wanneer u wilt wijzigingen doorvoeren in uw server, u "push" Heroku met Git. Git is een blik wormen binnen een blik wormen zelf, maar in wezen is het een herziening controlesysteem voor code - een mooie manier om te zeggen dat het houdt spoor van uw wijzigingen voor u. U schrijft uw code, en elke keer als u wilt dat Git voor het opslaan van uw huidige code, u "commit" uw wijzigingen en uw code kunt terugzetten naar Staten die eerder begaan wanneer je maar wilt. Git kan worden ingesteld dat de belangrijkste herziening database on line (een gratis voorbeeld is GitHub). In ons geval de belangrijkste opslagplaats is Heroku, en wanneer we de server bijwerken willen, we gewoon "push" onze meest recente versie naar het. Hier vindt u de specificaties het gebruik van Git met Heroku hier. Als u leren van meer over Git wilt:
- Noodzaak gebaseerde Git referentie
- Tal van Git theorie doorspekt met how-tos
- Git praktijktips voor ontwerpers
Lokaal werken
Afhankelijkheden kunnen een enorme bron van hoofdpijn voor mensen met behulp van Python op verschillende machines, als je niet voorzichtig bent. Stel ik maakte mijn eigen Python module waarmee ik bel myModule.myFunction(), en ik gebruik dat in mijn Python programma. Als ik geef je gewoon mijn Python-bestand zonder de module, zal uw computer hebben geen idee wat myModule bedoelt. Om aan te pakken dit, gebruiken we een virtuele omgeving met Virtualenv of een geïsoleerde exemplaar van Python waar sprake is van directe controle over wat wordt geïnstalleerd, evenals een goed ontworpen workflow voor het uitvoeren van onze programma's op verschillende machines. Een eenvoudigere manier te visualiseren dit: je hebt twee computers, een met Photoshop van de Adobe en Microsoft Office, de andere met geen software. De Excel-bestanden en afbeeldingen die u op de eerste computer kunnen niet worden geopend op de tweede omdat de computer niet beschikt over de programma's (of modules) die weten hoe om te lezen van de bestanden. Een virtualenv zou verwant aan een account op elke computer die u kan inloggen met identieke programma's. Elke keer dat u start met behulp van een nieuw programma op één rekening, wilt u een manier voor dezelfde account op de andere computer om het te hebben, zodat u al uw bestanden kunt openen. Virtualenv is dit voor Python.
De workflow voor de virtuele omgeving met Heroku is:
-opstelling van Virtualenv
-virtualenv activeren
bron venv/bin/activeren-installeren van nieuwe modules met behulp van de pip of easy_install (installatie managers voor Python)
-bijwerken requirements.txt door "bevriezing" van de Virtualenv afhankelijkheden in het bestand (requirements.txt houdt spoor van wat modules zijn geïnstalleerd in de virtualenv)
pip bevriezen > requirements.txtAlternatieve verklaring voor Virtualenv voor degenen die ik in de War (sorry!).
Nadat u Heroku, Git hebt, en Virtualenv setup, en je wat code in uw app.py bestand geschreven heb, dat kunt u een testserver lokaal alvorens het duwen van de code te Heroku, om te controleren of werkt het eerst. Het uitvoeren van een lokale server, terwijl in de virtualenv in de console worden uitgevoerd:
Foreman startenEen lokale server wordt uitgevoerd op 0.0.0.0:5000 in uw webbrowser. Ga daar, testen van de functionaliteit van uw server. Als fouten opduiken, de browser zal laten zien en u kunt uw console voor Foutopsporingsberichten.
Zodra uw blij met de functionaliteit van uw server in de console worden uitgevoerd:
Geen nieuwe bestanden aan de lokale kopie van de Git toevoegengit toevoegen.Sla de wijzigingen in uw lokale kopie van de Git
git plegen -m "Add je commit boodschap die beschrijving van de wijzigingen die u hebt aangebracht sinds de laatste keer."Kopieer je lokale kopie naar de Heroku kopiëren, of opslagplaats
git push heroku meester
En altviool! Uw code wordt nu uitgevoerd op Heroku en kan worden benaderd door de Internets! Ik moet nog om te beschrijven hoe record knop ingedrukt gebeurtenissen op de server met behulp van een database, maar ik zal dit later doen. Nu op om te praten met Facebook.