{"id":409,"date":"2016-10-07T15:06:42","date_gmt":"2016-10-07T18:06:42","guid":{"rendered":"http:\/\/www.antonioladeia.com\/blog\/?p=409"},"modified":"2016-10-07T15:08:51","modified_gmt":"2016-10-07T18:08:51","slug":"primeiras-impressoes-com-web2py","status":"publish","type":"post","link":"https:\/\/www.antonioladeia.com\/blog\/primeiras-impressoes-com-web2py\/","title":{"rendered":"Primeiras impress\u00f5es com web2py"},"content":{"rendered":"<p>Nota r\u00e1pida, este foi um post que estava quase pronto h\u00e1 muito tempo na minha caixa de entrada, como n\u00e3o queria perd\u00ea-lo, resolvi publicar.<\/p>\n<hr \/>\n<p>Depois que mudei de emprego, estou h\u00e1 quase dois meses trabalhando\u00a0diariamente com python e\u00a0 com o <em>framework<\/em> para aplica\u00e7\u00f5es web web2py, e resolvi criar um post para falar um pouco mais da minha experi\u00eancia com ele.<\/p>\n<h3>O framework<\/h3>\n<p>Como aprendi l\u00e1 na mat\u00e9ria de padr\u00f5es de projeto, um <em>framework <\/em>deve possuir 3 caracter\u00edsticas, a saber: <em>hotspots, <\/em>invers\u00e3o de controle, e dom\u00ednio de aplica\u00e7\u00e3o.<\/p>\n<p>O dom\u00ednio de aplica\u00e7\u00e3o do web2py \u00e9 facilmente identific\u00e1vel, um framework para aplica\u00e7\u00f5es web utilizando o python que implementem o padr\u00e3o web server gateway interface, ou\u00a0 wsgi.<\/p>\n<p>A invers\u00e3o de controle se d\u00e1,\u00a0 quando voc\u00ea codifica a sua aplica\u00e7\u00e3o,\u00a0 voc\u00ea n\u00e3o chama diretamente componentes do <em>framework <\/em>na verdade, o framework chama os componentes desenvolvidos por voc\u00ea.<\/p>\n<p>Por fim, os <em>hotspots, <\/em>s\u00e3o os pontos onde \u00e9 poss\u00edvel alterar o<em> framework. <\/em>O web2py \u00e9 um arcabou\u00e7o de aplica\u00e7\u00e3o quase pronto, mas pass\u00edvel de customiza\u00e7\u00f5es, os hotspots s\u00e3o os locais onde o <em>framework<\/em> se torna pass\u00edvel de customiza\u00e7\u00f5es.<\/p>\n<h3>O web2py<\/h3>\n<p>O web2py \u00e9 um <em>framework<\/em> criado em 2007 com o objetivo de poder criar facilmente aplica\u00e7\u00f5es web de alta qualidade, que fosse <em>free and open source<\/em>, que pudesse ajudar a descentralizar o fluxo da informa\u00e7\u00e3o, e por fim que fosse f\u00e1cil, r\u00e1pida e mais segura.<\/p>\n<p>Como resultado ele ganhou dois pr\u00eamios, em 2011 ganhou o <em>Bossie Award for best Open Source Development Software, <\/em>e em 2012 ganhou o <em>Technology of the Year award from InfoWorld<\/em>.<\/p>\n<h3>Instala\u00e7\u00e3o e execu\u00e7\u00e3o<\/h3>\n<p>A instala\u00e7\u00e3o do <em>framework<\/em> \u00e9 inexistente, \u00e9 s\u00f3 baixar e rodar e suas \u00fanicas depend\u00eancias b\u00e1sicas \u00e9 ter o python 2.7 e a lib TK instaladas. para rodar a aplica\u00e7\u00e3o \u00e9 s\u00f3 fazer:<br \/>\n<code><br \/>\npython web2py -p 123<br \/>\n<\/code><\/p>\n<p>Isso vai iniciar um webserver, o web2py e a aplica\u00e7\u00e3o <em>wellcome <\/em>rodando na porta 8000, para visualiz\u00e1-la \u00e9 s\u00f3 apontar para a url 127.0.0.1:8000 no seu navegador.<\/p>\n<h3>Desenvolvimento<\/h3>\n<h3>Pr\u00f3s e contras<\/h3>\n<p>Pr\u00f3s<\/p>\n<ul>\n<li>J\u00e1 vem com baterias<\/li>\n<li>muito simples para fazer pequenas coisas<\/li>\n<li>Ferramentas integradas<\/li>\n<\/ul>\n<p>Contras:<\/p>\n<ul>\n<li>Depend\u00eancia do python 2.7.<\/li>\n<li>Comunidade pequena.<\/li>\n<li>Pouca documenta\u00e7\u00e3o.<\/li>\n<li>Dif\u00edcil customizar para projetos maiores<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Nota r\u00e1pida, este foi um post que estava quase pronto h\u00e1 muito tempo na minha caixa de entrada, como n\u00e3o queria perd\u00ea-lo, resolvi publicar. Depois que mudei de emprego, estou h\u00e1 quase dois meses trabalhando\u00a0diariamente com python e\u00a0 com o framework para aplica\u00e7\u00f5es web web2py, e resolvi criar um post para falar um pouco mais&nbsp;&hellip;<\/p>\n","protected":false},"author":1,"featured_media":413,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[228,227,229,230,124,226],"class_list":["post-409","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacao","tag-framework","tag-overview","tag-primeiros-passos","tag-python","tag-web","tag-web2py"],"_links":{"self":[{"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/posts\/409","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/comments?post=409"}],"version-history":[{"count":5,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/posts\/409\/revisions"}],"predecessor-version":[{"id":514,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/posts\/409\/revisions\/514"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/media\/413"}],"wp:attachment":[{"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/media?parent=409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/categories?post=409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.antonioladeia.com\/blog\/wp-json\/wp\/v2\/tags?post=409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}