Você está na página 1de 12



3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

-XOLD5L]]DS\
8PEORJSDUDUHXQLUFRQKHFLPHQWRDVHU
FRPSDUWLOKDGRFRPRPXQGR

3DVVRD3DVVRZHES\3DVVR
3deagostode20154deagostode2015
Esteartigoseroprimeirodevriosoutrosqueservirocomoguiaparaadentrarnouniverso
doweb2py,umdosframeworksPythonparadesenvolvimentoweb.Meuobjetivoajudar
vocs,padawans,ainiciaremcomopdireitonodesenvolvimentowebeapercorreremtodoo
processodedesenvolvimentodeumaaplicaowebusandooframework.Prontos?

2TXHYDPRVID]HU"
Aideiasimpleseclich:umcontroledeestoques.Paraisso,vamoscriarumalocadorade
filmesefazerocontroledaloja.Aideiaqueositefiquesimples,masquevocconsiga
entendertodoodesenvolvimentodele,dasconfiguraesmaisbsicasatodeploy.

Aplicaesconstrudascomweb2pyseguemasmesmasregras,entooobjetivoquevoc

KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR





3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

Aplicaesconstrudascomweb2pyseguemasmesmasregras,entooobjetivoquevoc
termineestetutorialcomaaplicaodasualocadorapronta,massabendoconstruirqualquer
appdepois.

2TXHHXSUHFLVRSDUDFRPHoDU"
Bom,antesdetudo,claro,vocprecisasaberpelomenosobsicodalinguagemPython(se
achaquenosabeosuficiente,cliqueaqui(http://pycursos.com/pythonparazumbis/))eter
umaverso2.6ou2.7dalinguageminstaladanoseucomputador.Tambmtenhoquepedir
quesaibaobsicodobsicodeHTML,CSSeJS;vocnovaiperderseuprojetosenosouber
nadadessestrs,masjquevocpretendedesenvolverparaweb,serialegalconhecerpelo
menosumpoucodessastecnologias.
Almdisso,serialegalsevocjtivesseumanoosobreoframeworkeoqueelepretende,
massenoforesseocaso,transcrevoaquipalavrascontidasnadocumentao:
web2pyumframeworkwebgratuitoeopensourcecriadoparadesenvolvimentogildeaplicaes
webbaseadasembancodedadosseguros;eleescritoemPythoneprogramvelemPython.web2py
umframeworkfullstack,oquesignificaqueelecontmtodososcomponentesquevocprecisapara
construiraplicaeswebcompletamentefuncionais.
web2pyfoidesenvolvidoparaguiarumdesenvolvedorwebparaseguirboasprticasdeengenhariade
software,comousaropadroModelViewController(MVC).web2pyseparaarepresentaode
dados(omodel)daapresentaodedados(aview)etambmdalgicaedofluxodaaplicao(o
controller).web2pyprovidenciabibliotecasparaajudarodesenvolvedoracriar,implementaretestar
cadaumadastrspartesseparadamente,efazelastrabalharemjuntas.
Agora,bastaterdisposioparadaroprimeiropasso!

'RZQORDGH,QVWDODomR
Parafazerodownloaddoframework,acesseapginadoframework
(http://www.web2py.com)(www.web2py.com)evparaaabadeDownloadouapenasclique
aqui(http://www.web2py.com/init/default/download).
Voctertrsopes,vamosentendercadaumadelas,daltimaparaaprimeira:

(https://juliarizza.files.wordpress.com/2015/08/selection_001.png)
Opesdedownloaddoweb2py

KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR





3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

Opesdedownloaddoweb2py

)RU'HYHORSHUV
Paraaquelesquecontribuemcomodesenvolvimentodoweb2py.Porseraversode
desenvolvimento,amenosestvel,oquequerdizerqueaprobabilidadedevocencontrar
bugsnocoredoframework,nessaverso,muitomaior.
Casovocqueiracontribuircomoframework,vocpodepegarocdigofontenorepositrio
doGitHubindicadol.

)RU7HVWHUV
Paraaquelesquesededicamaotestedoframework.Ouseja,quandoumanovafuncionalidade
finalizadanaversodeDevelopers,entramosTesterseestesvotestarocoredoframework,
ocdigofonte.Odeverdeles,basicamente,encontrarereportarbugs.
Casovocqueiraserumtester,podepegarqualquerumadasversesdoweb2pyparaessa
finalidade(Windows,MacouSourceCode).

)RU1RUPDO8VHUV
Paraaquelesquesomerosmortaiscomonsedesejamusaraversomaisestveldo
framework,ouseja,queremosutilizaroframeworkapenasparaproduzirnossoprprio
contedoecomomnimopossveldebugs.Essaopooferecetrsverses:paraWindows,
MaceSourceCode.
Independentedosistemaoperacionalquevocutiliza,recomendobaixarsempreoSource
Code.Oquevocdevefazeroseguinte:
1.BaixaroSourceCodeparaNormalUsers;
2.Descompactaroarquivobaixadoondedesejar;
3.Apastadescompactadadeverterumarquivoweb2py.pydentrodela.Semprequequiser
iniciaroweb2py,bastaexecutaressearquivo.
importanteressaltarumdetalhesobreoversionamentodoweb2py:independentedaverso,
eletentasempremanteracompatibilidadecomasversesanteriores.Nestetutorial,irei
utilizaraverso2.10.4.Istoquerdizerque,casoeurodeumaaplicaoconstrudanaverso
2.0.0,eladevefuncionarsem(ouquasesem)problemas.Portanto,fiquetranquiloquanto
versoquevocirutilizar.
Bom,entoexecutamososcriptPythondoweb2py,eoqueaconteceagora?Umajanelairse
abrirtepedindooIPdoservidor,aportaeumasenha.Porqueisso?
KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR





3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

(https://juliarizza.files.wordpress.com/2015/08/web2pywebframework_002.png)
Janelainicialdoweb2py
Oweb2pyvemcomumservidorwebembutido,oquepermitequesuaaplicaopossaser
executadanoseucomputadore,assim,vocconsigavisualizaroframeworkesuasaplicaes
rodandonoseubrowser.Dessaforma,quandoeleperguntaoIPeaportadoservidor,voc
devefalaroendereoondeesseservidorirrodarparaquesejacapazdeacesslo.
Porexemplo,sevocescolheroservidorlocaleaporta8000(quesoosvalorespadres),voc
devesercapazdeversuasaplicaesrodandoemhttp://localhost:8000(http://localhost:8000)
(ouhttp://127.0.0.1:8000(http://127.0.0.1:8000),queamesmacoisa).Anoserquedeseje
alterarrealmenteessesvalores,podedeixlosnopadrodurantetodoodesenvolvimento.
Almdisso,oweb2pypossuiumainterfaceadministrativaquetepermitecontrolarsuas
aplicaesexistentes,editlaserealizarmuitasoutrasaesqueiremosveradiante.Porisso,
eletambmpedeumasenha.Asenhaserutilizadaparalogarnessainterface.Nocaso,como
vocestrodandoemlocalhost,podedefinirumasenhapoucoseguraapenasparaterum
acessomaisrpido,vistoqueterquedefinirasenhatodavezqueexecutaroweb2py.Eu
recomendoalgocomo1234,bemrpido.
Tudodefinido,podemosexecutaroweb2pyclicandoemstartservereacesslonoendereo
http://localhost:8000(http://localhost:8000).
Paraaquelesque,comoeu,gostamdeusaroTerminal(ouLinhadeComando),oweb2py
tambmpodeserexecutadodessamaneira.Bastaacessarapastaquevocdescompactoue
rodaroscriptPython:
1
2

$cdweb2py
$pythonweb2py.py

Etudoserdamesmaforma.Almdisso,paraaquelesquenoqueremessajaneladoweb2py
abrindoemtodaexecuo,podemossuprimilaexecutandooweb2pycomocomando:
1

$pythonweb2py.pya<sua_senha>

Agora,vocpodeacessaroweb2pynoendereodolocalhostsemquenenhumajanelaextra

KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR





3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

Agora,vocpodeacessaroweb2pynoendereodolocalhostsemquenenhumajanelaextra
sejaaberta.

:HOFRPH

(https://juliarizza.files.wordpress.com/2015/08/welcomemozillafirefox_006.png)
AplicaoWelcome,oHelloWorld!doweb2py
Assimqueexecutamosoweb2pyeacessamosolocalhostpelobrowser,podemosverumatela
padroescritaWelcometoweb2py!comalgumasinformaessobreoweb2py.Essatelanada
maisdoqueumaaplicaoqueveminstaladanoframework,queservecomobaseeexemplo
parafuturasaplicaesquevocirconstruir.Emlinguagemdeprogramador,aaplicao
WelcomeumHelloWorlddoweb2py.
Vistaessaaplicao,vocpodetercertezadequedeutudocerto.Vocnoprecisaconfigurar
maisnadadoambientedoweb2py,poiselejvemcomtudopreparadoparaquevocno
tenhaquemexeremnada,apenasfazerodownloadejcomearautilizlo.

09&SDUDHQWHQGHU
OmodeloMVC(ModelViewController)umpadrodeorganizaodeaplicaes.Assim,
ficaroseparadososmodels,quesoasrepresentaesdedados;asviews,quesoas
apresentaesdosdados;eoscontrollers,quesoasfuneseinteraesqueaaplicaoir
realizar.

KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR





3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

OmodeloMVC

0RGHOV
Nosmodelssoguardadasinformaesdebancosdedados,almdecriadasevalidadassuas
tabelas.Apartirdisso,poderemosgravarearmazenardadosdaaplicaoeinteragircomeles:
resgatar,editar,deletar,etc.
Noweb2py,osmodelstambmsosempreosprimeirosarquivosaseremlidos,emordem
alfabtica.Ouseja,seeutenhoumarquivodb.pyeummodel.py,asinformaesdoarquivo
db.pyserolidaseinterpretadasantesdemodel.py.Portanto,sealgumainformaopresente
emdb.pydependerdealgoemmodel.py,ocorrerumerro!
Almdisso,tudooquefordefinidoemummodelpoderseracessadoemtodasaspartesda
aplicao.Ouseja,asvariveisdefinidasemmodelseroglobaisparaasuaaplicao,assim
comoosimports.

&RQWUROOHUV
Noscontrollerssodefinidasasfunesdaaplicaoquefarocomqueelafuncionedaforma
comodesignada.Sonoscontrollersquepoderemosfazercomqueaaplicaointerajacomo
bancodedadoseenvieinformaesparaousurio,ouseja,nelesconstruiremostodaalgica
daaplicao.
Noweb2py,cadafunosemparmetrosnocontrollermapeadaparaumaURL,ouseja,cada
funodefineumadiferentepginadasuaaplicao.Essaspginassochamadasdeactions
paraindicarquesodiferentesdeumafunocomum.
Casovocpasseparmetrosparaumafunonocontroller,eladeixadesermapeadacomo

KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR





3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

Casovocpasseparmetrosparaumafunonocontroller,eladeixadesermapeadacomo
umapginaepassaaserumafunoPythoncomum,quepoderserchamadanocdigo.Isso
especialmentefeitoemmodels,poisassimafunoseracessvelemtodasascamadasde
cdigo.

9LHZV
Asviewsdefinemoqueaaplicaovaiexibirparaousurioeaformacomoissosedar.No
web2py,viewsgeralmentesoarquivosHTMLquepodemrecebercdigoPython.Ocdigo
Pythonemumviewdeveestardentrodosdelimitadores{{}}paraserexecutado.
Viewspodemherdarouincluiroutrasviews.Isto,vocpodefazercomqueumaview
contenhaoutra,exibindoambasemconjunto.

'HYROWDj:HOFRPH
AgorasimpodemosentendermelhoroqueaaplicaoWelcomenosdizia:
Vocacessouapginaindex,oquechamouumaactionindex()nocontrollerdefault.pyeque
retornouumdicionriocomalgumasinformaesqueforamadicionadasaoHTMLdapgina.
Ouseja,acessamosumafunodeumcontrollereessecontrollerpassouinformaesnossa
view.Mascomoentenderaformacomoessesarquivossoorganizados?

$ VXSHU LQWHUIDFHDGPLQLVWUDWLYD

KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR





3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

Ainterfaceadministrativadoweb2py
Oweb2pytrazumainterfaceadministrativagrficaquetepermiteversuasaplicaes,entre
vriasoutrascoisasquenosonossofocoagora.Ento,vamosdiretoacessla:
http://localhost:8000/admin(http://localhost:8000/admin)
Paraacessaroadmin,serpedidaumasenha.Essasenhaaquelaquevocdefiniuquando
executouoweb2py.
Feitoologin,umatelalistandoasaplicaesexistentesserexibida.Comoqueremosexplorar
aaplicaoWelcome,podemosseguirdiretoparaela.CliquenobotoManageassociado
aplicaoWelcomeeselecioneEdit.
AgoravocpodevertodaaestruturadaaplicaoWelcome.Reparequeosprimeirosarquivos
soosmodels,seguidospeloscontrollersedepoisview.Maisadianteexistemvriosoutros
diretrios,masvamosfocarnostrsprimeiros.

(https://juliarizza.files.wordpress.com/2015/08/designwelcomemozillafirefox_007.png)
MododeediodaaplicaoWelcome

KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR





3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

MododeediodaaplicaoWelcome
Casotenhacuriosidadedeabriromodeldb.py,verqueeletrazconfiguraesgeraisda
aplicao,comoaconexoaobancodedados,aAPIdeautenticao,configuraesdeemail,
etc.Almdisso,ocontrollerdefault.pyexibirparavocsuaspginas,queincluemaindex,
pginasdeautenticaodousurioepginasdedownload.Porfim,temosviewsdefinidas
dentrodapastadefault,ouseja,associadasaocontrollerdefaultcomoveremosadiante.
Sevocquiser,podealterarqualquerumdessesarquivosapartirdaprpriainterface
administrativa.NotequecadaarquivotemumbotodeEditaoladodonome,oqueabreuma
IDEsimplesdoweb2pypararealizarediesnaquelearquivo.
Asoutraspastasdaaplicaoso:
1. Languages,quecontmarquivospararealizartraduodoquevocirdefinirquedeve
sertraduzido;
2. Static,quecontmosarquivosestticosutilizadosemlayouts;
3. Modules,quecontmosmdulosexternosdoweb2pyquevoctrouxeparaoprojeto;
4. Privates,quecontmarquivosdeconfigurao;
5. Plugins,quecontmpluginsweb2pyutilizadosnoprojeto.

6XDSULPHLUDDSOLFDomR
Entendidotudoisso,podemosvoltarparaapginainicialdainterfaceadministrativa.Iremos
seguiropassomaisfcilagoraparacriarumanovaaplicao:
1.NareadeNewsimpleapplicationdapginainicialdainterfaceadministrativa,inseriro
nomedoapp.
2.ClicaremCreate.

(https://juliarizza.files.wordpress.com/2015/08/selection_009.png)
Criandoumanovaaplicaonoweb2py

KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR





3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

Criandoumanovaaplicaonoweb2py
Umanovaaplicaosercriadacomonomeinformado.Sevocfornareadeediodessa
aplicaoirnotarqueelaexatamenteigualaplicaoWelcome.Issoaconteceporqueo
web2pyutilizaomodelodaaplicaoWelcomecomobaseparaqualquernovaaplicaosua,
quejtrazdiversasprconfiguraesprontas.Assim,eleclonaaaplicaoWelcomealterando
seunome.
Casovocacessehttp://localhost:8000/nome_da_sua_app
(http://localhost:8000/nome_da_sua_app),irvernovamenteateladaaplicaoWelcome,
emboraagoravocestejaacessandosuaaplicaonovinha.

&RQFOXVmR
Comoo1passodoweb2py,conseguimosfazerodownload,executamosoframeworkej
camosdiretonoHelloWorldqueelefornece!
Almdisso,conseguimosentenderomodeloMVCecomooweb2pyaplicaele,incluindo
detalhesbemespecficoscomoacaractersticadesempreexecutarosmodelsprimeiroeter
suasvariveisdisponveisdeformaglobalnaaplicao.
Porfim,aprendemosautilizarobsiconecessriodainterfaceadministrativaecriamosnossa
primeiraaplicao,queumclonedaWelcome.Agoraestamosprontosparacomeara
desenvolvernossaaplicaodalocadora!
Sobre estes anncios
Postedin:python,web2py|Tagged:passoapasso,passo1,python,tutorial,web2py
(https://wordpress.com/aboutthese-ads/)

FRPHQWiULRVVREUH3DVVRD3DVVRZHES\
3DVVR
LUCAS disse:4deagostode2015s10:38 RESPONDER
1. Muitobom,estouesperado2opassohahaha!
Parabns!
Curtir
Curtidopor1pessoa
SIDNEY disse:4deagostode2015s17:30 RESPONDER
2. Ihhheucliqueinoweb2py.pyeabreumterminalelogofechaenoaparecemaisnada.
Usowindows764eaquiagenteusaumservidor(serqueisso??)
Curtir

KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR





3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

Curtir
Curtir
JLIARIZZA disse:4deagostode2015s18:27 RESPONDER
Tenteexecutaroarquivo.pypelocmd(linhadecomando)oubaixeaversopara
Windows,adiferenamnima
Curtir
Curtir
ALEXANDREDVOLPI disse:5deagostode2015s18:20 RESPONDER
3. Jliamuitobom,muitobommesmo!
Comoseraperiodicidadedaspublicaes,vcjtemtodoomaterialevailiberandoaos
poucosouvcestdesenvolvendoemtempodeexecuo
Abraoseparabnspelainiciativa!
Curtir
Curtir
JLIARIZZA disse:6deagostode2015s13:07 RESPONDER
OiAlexandre!
Eunotenhonadapronto,entoestoucontruindotudoamedidaquemontootutorial.
Da,pensoemliberarumnovopassoacadasemana,setudodercertohehe
Obrigadapeloseucomentrio!
Abraos!
Curtir
Curtidopor1pessoa
RAFAELOLIVEIRA disse:5deagostode2015s18:55 RESPONDER
4. Muitobom.Aguardandoansiosopeloprximopost.
Obrigado.
Curtir
Curtir
CARLOSEDUARDOGLORIA disse:10deagostode2015s22:29 RESPONDER
5. MuitobomJlia,estvamosmesmonessaexpectativa
Curtir
Curtir
GYLMONTEIRO disse:11deagostode2015s11:02 RESPONDER
6. Muitolegal.Estouaprendendobastante
Curtir
KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR



Curtir
Curtir



3DVVRD3DVVRZHES\3DVVR_-XOLD5L]]DS\

CRIEUMWEBSITEOUBLOGGRATUITONOWORDPRESS.COM.|OTEMASELA.
Seguir

6HJXLU-XOLD5L]]DS\
CrieumsitecomWordPress.com

KWWSVMXOLDUL]]DZRUGSUHVVFRPSDVVRDSDVVRZHES\RSDVVR



Você também pode gostar