Dezvoltarea și implementarea rapidă a aplicațiilor devine rapid o cerință și un obiectiv pentru multe proiecte, vechi și noi. Din fericire, o gamă largă de opțiuni revin dezvoltatorilor pentru a profita de resursele de implementare și integrarea strânsă cu limba de programare la alegere. Implementările în cloud, în cazul în care companiile oferă o cantitate mare de hardware pe care o puteți adapta la nevoile dvs., devin din ce în ce mai populare, datorită flexibilității și rentabilității acestora în urma unei plăți pe măsură ce utilizați modelul.
Una dintre cele mai incitante schimbări pe care le-a adus această mișcare către platformele cloud, în special în cazul proiectelor mai mici, este că mulți nori oferă o oportunitate de desfășurare gratuită, deși cu o utilizare minimă a hardware-ului. Acest lucru permite găzduirea gratuită a aplicațiilor prototip, de exemplu, sau a produselor beta, oferindu-vă rapid o instanță de aplicație live, pe care o puteți pune la dispoziția oricui vă place. În mod similar, funcționează perfect pentru orice site care primește o cantitate moderată de trafic, cum ar fi o mică afacere locală sau chiar un site web de portofoliu în care puteți să prezentați o parte din munca dvs..
Acest articol se concentrează pe experiența mea în dezvoltarea rapidă a unui site de portofoliu în Python și a cadrului web popular Django, folosind câteva șabloane de bootstrap pentru a modela site-ul. Cu un site curat capabil să prezinte operele, vă voi arăta cum să le adăugați într-un sistem de management al conținutului generat de Django (CMS), precum și cât de ușor ar putea fi implementat în Heroku pentru găzduirea site-ului dvs. și apoi monitorizați traficul, erorile și timpii de răspuns folosind sistemul de integrare New Relic al lui Heroku. Toate gratuit, în câteva ore de la muncă.
Mai întâi, aveți nevoie de un proiect pe care doriți să-l găzduiți pe nor. Așa cum am menționat mai devreme, proiectul meu a fost să creez rapid un site web de portofoliu din care să-mi prezint articolele și alte proiecte, alături de informațiile mele C.V și de contact. Python și Django au oferit o potrivire perfectă pentru aceste cerințe și puteți începe rapid să construiți un site dinamic cu Django și designul său ORM, oferind o integrare ușoară între șabloanele web și datele de bază stocate într-o bază de date.
Înainte de a scrie orice cod, trebuie să creați un mediu virtual Python pentru proiectul dvs., pentru a păstra dependențele pentru acest proiect separate de celelalte. Sub capotă, virtualenv
copiază eficient instalarea dvs. globală Python la .virtualenvs
dosar sub un director numit pentru dvs. virtualenv
. Apoi adaugă această locație în fața căii dvs., astfel încât sistemul dvs. să utilizeze această instalare Python pentru proiectul dvs. Toate dependențele sunt apoi instalate aici în loc de la nivel global. Puteți face acest lucru instalând mai întâi virtualenv
și virtualenvwrapper
folosind managerul de pachete Python "țâfnă
".
$ pip instalare virtualenv $ pip instalare virtualenvwrapper
După instalarea virtualenv
instrumente care ar trebui să adăugați apoi o linie sursă la dvs. .bashrc
în directorul de acasă (Linux / Mac OS X), care permite virtualenvwrapper
script-uri pe linia de comandă, permițând crearea, activarea și ștergerea ușoară a mediilor virtuale. Puteți crea virtualenv
după cum urmează.
$ mkvirtualenv portofoliu
Cu ajutorul setării mediului puteți instala Django pe care îl veți utiliza pentru a defini aplicația web. Django poate fi instalat executând următoarea comandă.
$ pip instalare django
Cu dependențele existente, primul dvs. pas în crearea proiectului Django este de a crea un director pentru a ține fișierele după o structură destul de standard, după cum se arată mai jos. Din fericire, Django ajută la automatizarea acestui proces cu utilizarea lui django-admin.py
instrument de linie de comandă. Executați următoarele pentru a crea directorul de proiecte și aplicații.
$ django-admin.py startproject tuts
Aceasta va produce următoarea structură.
tuts / tuts / __init__.py setări.py urls.py wsgi.py
Puteți citi mai multe despre configurarea aplicațiilor Django în documentația oficială Django, dar un rezumat de bază al acestor fișiere este după cum urmează:
settings.py
- pentru aplicația dvs. Django, cum ar fi conexiunile de baze de date și aplicațiile (vedeți mai jos).urls.py
- rutele care fac legătura cu diferitele părți ale site-urilor dvs..wsgi.py
- un fișier pentru a permite pornirea aplicației de către servere web, cum ar fi Apache.Proiectul creat până acum este doar containerul exterior pentru aplicația dvs. web reală. Carnea codului ar trebui să trăiască în interiorul unei aplicații și puteți folosi din nou metodele de ajutor ale lui Django pentru a crea structura aplicației pentru dvs..
Portofoliul startapp $ python manage.py
Acest lucru va adăuga în următoarea structură generală de directoare.
tuts / tuts / __init__.py setări.py urls.py wsgi.py portofoliu / admin.py models.py tests.py views.py
Cu aplicația creată, trebuie să o înregistrați în proiectul dvs. Django. Deschide settings.py
și adăugați "portofoliu" la INSTALLED_APPS
tuplu:
INSTALLED_APPS = ('django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles' , "portofoliu")
Pentru a verifica dacă totul funcționează, introduceți următoarea comandă și accesați http: // localhost: 8000 în browserul dvs. Ar trebui să vedeți o pagină ca cea prezentată în imaginea de mai jos.
Acum, când directorul dvs. de proiect este configurat, să începem să detaliem codul. După cum știm tipul de date pe care dorim să îl adăugăm la site-ul portofoliului, putem începe să definim modelul. Aceasta descrie datele noastre din baza de date și permite Django să meargă înainte și să creeze câmpurile și tabelele corespunzătoare din baza de date pentru noi. Pe site-ul nostru vom introduce înscrieri pentru articole, cărți și materiale de lucrări. Fiecare dintre acestea ar putea avea propriul său model individual dacă doriți să le dați câmpuri de date unice care nu se aplică celorlalte tipuri de intrări. Cu toate acestea, pentru acest site, fiecare intrare va primi un nume, o dată de publicare, o descriere și o adresă URL. În models.py
fișier din directorul de aplicații din portofoliu, puteți defini aceste date de intrare ca:
Element de clasă (modele.Model): publish_date = models.DateField (max_length = 200) nume = models.CharField (max_length = 200) detail = models.CharField (max_length = 1000) url = models.URLField (MAX_LENGTH = 200)
Cu modelul definit, puteți genera acest lucru în baza de date folosind instrumentele de linie de comandă construite în Django, care sunt puse la dispoziție după instalare. Dacă utilizați manage.py
fișier din nou, puteți utiliza, de asemenea, syncdb
comanda pentru a gestiona setarea bazei de date pentru tine. Dacă emiteți următoarea comandă, vi se vor afișa opțiunile disponibile pe care le oferă acest instrument de administrare.
$ python manage.py syncdb Crearea de tabele ... Crearea tabelului portofoliu_item Instalarea SQL personalizat ... Instalarea indexurilor ... Instalat 0 obiecte de la 0 fixe (e)
Utilizarea syncdb
permite Django să citească modelul pe care tocmai l-am creat și să configuram structura corectă pentru a stoca aceste date în baza de date. Deoarece aceasta este prima dată când ați executat această comandă, Django vă va cere să răspundeți la câteva întrebări. Acestea vor include elemente cum ar fi crearea unui superuser pentru baza de date (în esență, administratorul) care vă permite să protejați parola împotriva actualizărilor și modificărilor aduse bazei de date. Acest utilizator va forma, de asemenea, primul utilizator capabil să se conecteze la CMS care va fi generat pentru site-ul web după ce vom face șabloanele.
Cu setarea utilizatorului, comanda ar trebui să revină arătând că a executat SQL în baza de date. Următorul pas este să puteți accesa acum datele care vor fi stocate pentru a crea un front dinamic dinamic pe care doriți să îl afișați utilizatorului. Pentru a realiza acest lucru, va trebui să adăugați cod la vizualizări pentru a accesa datele pe care le veți păstra în baza de date. Cu datele disponibile pentru vizualizări, acesta poate transmite acest lucru șabloanelor care pot fi interpretate ca informații pentru utilizatorul final. În acest caz, aceasta va fi sub formă de pagini HTML pentru un browser web. Cu toate acestea, trebuie remarcat faptul că acest model ar putea fi folosit pentru alte tipuri de aplicații, cum ar fi producerea de JSON sau XML, care din nou ar folosi doar modelul pentru a defini și a muta datele și punctele care le prezintă, în formatul corect al JSON / XML spre deosebire de HTML.
În vizualizări, veți utiliza datele care vor fi stocate în baza de date pentru a fi afișate utilizatorilor. Pentru a face acest lucru, vom importa Articol
pentru a accesa acel model (cu Django care manipulează accesul bazei de date de dedesubt) și furnizează datele ca variabile "șablonului" pe care îl va face Django. Șablonul este, în cea mai mare parte, cod HTML static, cu adăugarea capacității de a executa un set restrâns de cod Python pentru a procesa datele și a le afișa după cum este necesar. De exemplu, puteți trece întreaga listă de obiecte de obiecte în șablon, dar apoi treceți peste lista din interiorul șablonului pentru a obține doar numele din fiecare element și a le afișa într-o H1
etichetă. Sperăm că acest lucru va deveni mai clar cu ajutorul exemplelor de mai jos.
Deschideți views.py
fișier care a fost creat pentru dvs. mai devreme și adăugați următorul cod care va fi executat atunci când accesați pagina de domiciliu (sau index) a site-ului dvs..
Definiție def (cerere): items = Item.objects.order_by ("- publish_date") acum = datetime.datetime.now () return render (cerere, 'portofoliu / index.html' ": acum.year)
Aceasta va colecta toate elementele stocate în baza de date, le va ordona după câmpul datei publicării, vă va permite să afișați mai întâi cele mai recente și apoi să le transmiteți pe șabloanele pe care le veți crea în scurt timp. Dicționarul transmis metodei de redare este cunoscut ca context și veți putea accesa cu ușurință acest obiect context în șablon pentru a afișa datele necesare.
Django folosește biblioteca templantă Jinja2 pentru a gestiona procesarea șabloanelor sale și este cu adevărat plăcută să o folosească, deoarece sintaxa sa este simplă și abilitățile sale sunt suficient de puternice pentru a produce ceea ce aveți nevoie. Merită totuși să observăm că o capcană pe care majoritatea dezvoltatorilor o creează atunci când lucrează cu Jinja2 face prea multă logică în cadrul șablonului. În timp ce Jinja2 vă oferă o cantitate mare de operații standard Python, este destinat procesării simple pentru a obține datele în format pentru afișare. Logica pentru recuperarea și structurarea datelor ar fi trebuit să fie făcută în controler și / sau vizualizare. Veți ști când ați căzut în această capcană atunci când codificați mult în interiorul șabloanelor și obțineți frustrarea când Jinja2 emite erori sau datele afișate nu vor apărea așa cum doriți. În acest moment, merită să revedeți punctul de vedere pentru a vedea dacă puteți face mai multe procesări în față, înainte de al trece pe șablon.
Cu a noastră index
metoda de manipulare a accesului la date, tot ce rămâne este să definiți șablonul pentru a afișa elementele noastre. Așa cum a sugerat index
metoda, trebuie să adăugați un index.html
fișier din aplicația de portofoliu pentru ca aceasta să poată fi făcută. Adăugați fișierul cu următorul cod.
Tuts + Django Exemplu Bine ați venit pe site-ul dvs. Django.
Iată obiectele dvs.:
Aceasta este o pagină HTML de bază, care va trece peste și va produce o listă cu gloanțe a numelor de elemente. Puteți, bineînțeles, să stilizați acest lucru oricum doriți și recomand foarte mult folosirea unui șablon de bootstrap dacă doriți să obțineți rapid ceva profesional. Vedeți mai multe pe site-ul Bootstrap.
Piesa finală pentru a vedea dacă totul funcționează este să faceți mai departe și să adăugați adresa URL rădăcină pentru a indica acest șablon pentru a fi redat. Sub directorul de aplicații "tuts" se deschide urls.py
și adăugați următoarea directivă URL la exemplele generate automat și la adresa URL de administrare.
urlpatterns = șabloane (", # Exemple: # url (r '^ $', 'tuts.views.home', name =" home "), # url (r '^ blog / )), url (r '^ admin /', include (admin.site.urls)), url (r '^ $', views.index, name = "index"
În cele din urmă, deschide-te admin.py
pentru a expune Articol
clasa la admin CMS, permițându-vă să introduceți datele care urmează să fie afișate pe pagina de pornire.
din portofoliu.models import Articol admin.site.register (Item)
Ar trebui să puteți să vă porniți site-ul (utilizând rulați serverul
ca înainte) și efectuați următoarele activități.
syncdb
mai devreme. Încercați să accesați alte aspecte ale datelor din element în șablon. De exemplu, schimbați codul în cadrul marcajului pentru a adăuga și data de publicare. De exemplu:
item.publish_date - element.name
Acum aveți un site de lucru care pur și simplu are nevoie de un anumit stil și mai mult conținut pentru a putea funcționa ca un site de portofoliu de lucru.
Heroku este o platformă de nor mare, pusă la dispoziția tuturor dezvoltatorilor și companiilor, ca serviciu de găzduire a unei clase de întreprinderi care este adaptat pentru toate cerințele de găzduire. De la site-uri de hobby, până la trafic, site-uri de afaceri critice, Heroku se ocupă de toate acestea. Cel mai bun dintre ele, structura lor de prețuri include un nivel gratuit care este mai mult decât capabil să ruleze un mic site web, cum ar fi site-ul portofoliului pe care l-am construit.
Heroku utilizează instrumentul de gestionare a codului sursă Git, care este tot mai popular, ca mecanism pentru controlul implementărilor pe platformă. Tot ce trebuie să începeți este un proiect, git
instalat și un cont Heroku care poate fi obținut prin vizitarea paginii de înscriere.
Odată ce v-ați înscris, intrați în contul dvs. Heroku și creați o aplicație cu un "web dyno". Heroku oferă gratuit o singură dyne, care este capabilă să ruleze o instanță de aplicație unică și trafic moderat la acel exemplu. Dați aplicației dvs. un nume sau lăsați-l pe Heroku să atribuie unul pentru dvs. Întrucât va trebui să folosim o bază de date pentru aplicația noastră, intrați în Add-Ons și atașați aplicația gratuită PostgreSQL la aplicația dvs..
Cu aplicația dvs. creată, urmați acești pași pentru a vă configura git
depozit și împingeți-l la Heroku.
Instalați Django Toolbelt pe care îl puteți găsi în secțiunea dezvoltator a site-ului Heroku.
Inițializați replica Git în directorul dvs. de proiect prin emiterea următoarelor comenzi:
$ git init. $ git add. $ git commit -m "Angajarea inițială a proiectului."
Cu depozitul Git în loc, adăugați telecomanda aplicației Heroku, astfel încât să puteți împinge codul la heroku.
$ heroku git: de la distanță - YOUR_APP_NAME
Heroku trebuie să știe comanda pentru exact cum să înceapă cererea. Pentru aceasta, trebuie să adăugați un "Procfile
"Adăugați fișierul numit"Procfile
"în rădăcina directorului dvs. de proiect, cu următorul conținut.
web: gunicorn tuts.wsgi
Pentru a permite aplicației Heroku să se conecteze la instanța bazei de date atașată aplicației dvs. în cloud, trebuie să adăugați următoarea linie settings.py
. Aceasta înseamnă că nu aveți nevoie să codificați greșit orice config și Heroku va gestiona conexiunile pentru dvs..
dacă nu os.environ.get ("HOME") == '/ PATH / TO / YOUR / HOME': # Parse configurarea bazei de date de la $ DATABASE_URL import dj_database_url DATABASES ['default'] = dj_database_url.config
Prin înfășurarea setării acestei conexiuni de bază de date în dacă
, permite configurarea să funcționeze așa cum este pe mașina dvs. locală, dar să configureze corect baza de date când se află pe Heroku.
De asemenea, trebuie să adăugați o requirements.txt
, care specifică dependențele Python pentru aplicație, astfel încât Heroku să le poată instala în mediul creat. Adăuga requirements.txt
la același nivel ca și Procfile
cu următoarele conținuturi:
Django == 1.6.2 dj-database-url == 0.3.0 dj-static == 0.0.5 django-toolbelt == 0.0.1 gunicorn == 18.0 newrelic == 2.16.0.12 psycopg2 == 2.5.2 wsgiref = = 0.1.2
Cu aceste fișiere create, adăugați-le la Git și apoi împingeți la telecomanda Heroku, unde va fi primită și pornită.
$ git add. $ git commit -m "Adăugat procfile și requirements.txt" $ git push heroku master
Ar trebui să vedeți o ieșire în timp ce este trimisă lui Heroku și se va termina cu următorul mesaj:
"http://APP_NAME.herokuapp.com/ desfășurat la Heroku"
Dacă ați fi lovit adresa URL acum, ați vedea un mesaj de eșec. Dacă vă amintiți pe mașina dvs. locală, aveați nevoie să rulați syncdb
pentru a crea tabelele din baza de date pentru ca aplicația să fie utilizată. Trebuie să reproduceți acest comportament în instanța noastră Heroku. Din fericire, Heroku a oferit o modalitate simplă de a executa aceste comenzi împotriva instanței dvs. de aplicare în centura de instrumente pe care ați instalat-o anterior.
$ heroku rulați python manage.py syncdb
Ar trebui să puteți accesa gratuit linkul dvs. și să vedeți site-ul web care rulează pe Heroku. Încercați să adăugați câteva elemente în baza de date în același mod ca și dvs. local, pentru a vă asigura că baza de date este configurată corect.
Cu aplicația dvs. implementată cu succes pe platforma Heroku, puteți începe acum să vă uitați la numeroasele add-on-uri furnizate. Heroku oferă o gamă largă de add-on-uri variind de la baze de date, instrumente de monitorizare, instrumente log avansate, analize, furnizori de e-mail și multe altele. Suplimentele sunt unul dintre aspectele importante ale găzduirii aplicației dvs. pe Heroku, deoarece acestea pot fi atribuite rapid și ușor aplicației dvs. și în câteva minute pot fi configurate și funcționale. Heroku a simplificat procesul de adăugare a acestor instrumente și necesită multă muncă din mâinile dvs. pentru a vă putea concentra asupra livrării produsului dvs..
Unul dintre add-on-urile pe care se va concentra acest articol este atașarea instrumentului de monitorizare și analiză, New Relic. New Relic are multe posibilități de a sapa în aplicația dvs. și de a furniza statistici și date în jurul unor elemente precum solicitări pe minut, erori, timpi de răspuns și multe altele. Cel mai bun din toate, Heroku oferă încă o dată un nivel gratuit pentru adăugarea pe site-ul dvs. pentru a merge împreună cu hostingul gratuit pe care îl avem în prezent.
Adăugarea aplicației New Relic la aplicația dvs. Heroku este simplă și vă solicită să vă conectați la pagina dvs. de administrare a contului dvs. Heroku. Odată ajuns acolo, faceți clic pe aplicația în care doriți să o adăugați și selectați "+ Obțineți add-on-uri"Apoi, veți fi prezentat cu o gamă largă de add-on-uri pe care le oferă Heroku.Noua Relic"și faceți clic pe ea.O pagină care prezintă descrierea și prețurile vor fi afișate și o defalcare a caracteristicilor activate la fiecare nivel de preț.Pentru nivel gratuit, veți avea, în esență, acces la aproape toate caracteristicile, dar sunt legate doar la ultimele șapte zile în valoare de date.Din noul Relic add on page, puteți copia și lipi pur și simplu codul pentru a atașa New Relic la aplicația dvs. și rulați-o pe linia de comandă.
Addons pentru heroku: adaugă newrelic: stark
Cu aceasta adăugată, puteți revizui pagina dvs. de aplicație în contul dvs. Heroku și acum trebuie să vedeți New Relic afișat mai jos de baza dvs. de date. Faceți clic pe acesta pentru a începe configurarea în contul dvs. New Relic. Aici trebuie să acceptați termenii și condițiile și apoi să urmați instrucțiunile pentru instalarea programului New Relic în aplicația dvs. Django. Acestea sunt după cum urmează:
newrelic
" pentru dumneavoastră requirements.txt
și apoi executați:$ pip instalare -r requirements.txt
$ newrelic-admin generați-config YOUR_LICENCE_KEY newrelic.ini
newrelic.ini
și modificați "numele aplicatiei
"la ceva semnificativ pentru dvs., de ex." Django Tuts + "sau" Django Portfolio " Procfile
pentru a include începutul agentului New Relic cu serverul:NEW_RELIC_CONFIG_FILE = newrelic.ini newrelic-admin run-program gunicorn tuts.wsgi
$ git add .
$ git commit -m "A fost adăugată o nouă Config config."
$ git împinge master heroku
Cam despre asta e! În jur de 15 minute, aveți posibilitatea să aveți completă monitorizare a aplicațiilor New Relic atașată aplicației dvs., din nou gratuit.
Tuts + au avut recent câteva articole minunate introducând New Relic și arătând câteva tehnici și utilizări mai avansate pentru instrumentul de monitorizare. Puteți găsi întreaga gamă de articole sau, alternativ, puteți merge direct la celălalt articol despre testele de performanță utilizând New Relic și JMeter.
Sperăm că ați găsit acest informativ tutorial și ceva în care vă puteți scufunda chiar în și încercați pentru tine într-o oră sau două de rezervă. Cu un pic de stil și un anumit conținut introdus prin pagina de admin Django creează, puteți dezvolta rapid un site profesional, găzduit și monitorizat gratuit.
Verificați site-ul meu în profilul meu de autor care a fost scris în Django, găzduit de Heroku și monitorizat de New Relic, care a inspirat redactarea acestui articol.