Escolar Documentos
Profissional Documentos
Cultura Documentos
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?
$VXSHULQWHUIDFHDGPLQLVWUDWLYD
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