Page template com conteúdo de script python

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

Page template com conteúdo de script python

Zope & Plone - Portugal/Brazil mailing list
Pessoal, bom dia.

Estou começando meus estudos de Python e surgiu uma necessidade que não estou conseguindo dar solução e acho que podem me ajudar.

Quero pegar um conteúdo de um html hospedado em um servidor remoto (http://servidor/lista.html) com um script python e a partir daí exibir o conteúdo em um page template qualquer como um portlet por exemplo.

Direto via console funciona fácil assim:

 import urllib2

req = urllib2.Request('http://servidor/lista.html http://servidor/lista.html')
response = urllib2.urlopen(req)
html = response.read()


Se dou um print html o conteúdo é trazido completamente.

Tentei fazer algo semelhante criando um script python na ZMI e de cara já dá erro de falta de permissão. Mesmo setando a configuração de proxy não tenho sucesso.

Como faria para executar este script no Plone e inserir o conteúdo gerado em um page template?

Obrigado....
 

Reply | Threaded
Open this post in threaded view
|

Re: Page template com conteúdo de script python

Zope & Plone - Portugal/Brazil mailing list
Via script python não será possível.  Esse tipo de script restringe o
acesso a vários módulos do Python por motivos de segurança.  Você vai ter
que desenvolver um produto no filesystem para resolver o problema.  Ou
então usar algo como o Windowz (http://plone.org/products/windowz).

Zénrique.


Em 14 de maio de 2014 11:18, [hidden email] [zope-pt] <
[hidden email]> escreveu:

>
>
> Pessoal, bom dia.
>
> Estou começando meus estudos de Python e surgiu uma necessidade que não
> estou conseguindo dar solução e acho que podem me ajudar.
>
> Quero pegar um conteúdo de um html hospedado em um servidor remoto (
> http://servidor/lista.html) com um script python e a partir daí exibir o
> conteúdo em um page template qualquer como um portlet por exemplo.
>
> Direto via console funciona fácil assim:
>
> import urllib2
> req = urllib2.Request('http://servidor/lista.html')response = urllib2.urlopen(req)html = response.read()
>
>
> Se dou um print html o conteúdo é trazido completamente.
>
> Tentei fazer algo semelhante criando um script python na ZMI e de cara já
> dá erro de falta de permissão. Mesmo setando a configuração de proxy não
> tenho sucesso.
>
> Como faria para executar este script no Plone e inserir o conteúdo gerado
> em um page template?
>
> Obrigado....
>
>
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Page template com conteúdo de script python

Zope & Plone - Portugal/Brazil mailing list
Entendo.

Será que é possível executar através de um external method?

Obrigado pela resposta.
Reply | Threaded
Open this post in threaded view
|

Re: Page template com conteúdo de script python

Zope & Plone - Portugal/Brazil mailing list
É uma possível solução, não é muito elegante, mas não custa tentar.

Zénrique


Em 14 de maio de 2014 13:09, [hidden email] [zope-pt] <
[hidden email]> escreveu:

>
>
> Entendo.
>
> Será que é possível executar através de um external method?
>
> Obrigado pela resposta.
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Page template com conteúdo de script python

Zope & Plone - Portugal/Brazil mailing list
In reply to this post by Zope & Plone - Portugal/Brazil mailing list
Achei uma solução. Criei o script abaixo no filesystem.

-------------------------------------------------------
import urllib2

def getData():

    response = urllib2.urlopen('http://servidor_externo/lista.html')

    html = response.read()

    return html
-------------------------------------------------------

Depois criei o external method get_lista_em e estei. Tudo ok até aí.

Criei um page tamplate a seguir pra exibir o conteúdo porem ele aparece desformatado, trazendo o código html ao invés de só o conteúdo. Quando chamo diretamente o external method aparece ok.


-------------------------------------------------------

<html>
  <head>
    <title tal:content="template/title">The title</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8">
  </head>
  <body>
   

  <div tal:content="context/get_niver_em"> lista </div>

  </body>
</html>
-------------------------------------------------------


Ao acessar o template o conteúdo é exibido assim:

-------------------------------------------------------
<ul> <li>item 1</li> <li>item 2</li> <li>item 3</li> <li>4</li> <li>item 5</li> <li>item 6</li> <li>item 7</li> <li>item 8</li> <li>item 9</li> <li>item 10</li></ul>

-------------------------------------------------------

Alguém sabe como resolver? Outra questão é que somente consigo acessar este template se estiver logado.
Vou continuar pesquisando aqui também.

Obrigado.
Reply | Threaded
Open this post in threaded view
|

Re: Page template com conteúdo de script python

Zope & Plone - Portugal/Brazil mailing list
In reply to this post by Zope & Plone - Portugal/Brazil mailing list
Funciona, eu já fiz com ExternalMethod exatamente isso que você citou com a
urllib.

Zé, isso está implementado naquele produto antigo do boletim do Prodasen.

Abraço,

Jean Ferri
Em 14/05/2014 14:26, "José Henrique Reis [hidden email] [zope-pt]" <
[hidden email]> escreveu:

>
>
> É uma possível solução, não é muito elegante, mas não custa tentar.
>
> Zénrique
>
>
> Em 14 de maio de 2014 13:09, [hidden email] [zope-pt] <
> [hidden email]> escreveu:
>
>>
>>
>> Entendo.
>>
>> Será que é possível executar através de um external method?
>>
>> Obrigado pela resposta.
>>
>>
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Page template com conteúdo de script python

Zope & Plone - Portugal/Brazil mailing list
In reply to this post by Zope & Plone - Portugal/Brazil mailing list
Declare assim:

tal:content="structure context/get_ niver_em"

Abraço,

Jean Ferri
Em 14/05/2014 14:44, "[hidden email] [zope-pt]" <
[hidden email]> escreveu:

>
>
> Achei uma solução. Criei o script abaixo no filesystem.
>
> -------------------------------------------------------
> import urllib2
>
> def getData():
>
>     response = urllib2.urlopen('http://servidor_externo/lista.html')
>
>     html = response.read()
>
>     return html
> -------------------------------------------------------
>
> Depois criei o external method get_lista_em e estei. Tudo ok até aí.
>
> Criei um page tamplate a seguir pra exibir o conteúdo porem ele aparece
> desformatado, trazendo o código html ao invés de só o conteúdo. Quando
> chamo diretamente o external method aparece ok.
>
>
> -------------------------------------------------------
>
> <html>
>   <head>
>     <title tal:content="template/title">The title</title>
>     <meta http-equiv="content-type" content="text/html;charset=utf-8">
>   </head>
>   <body>
>
>
>   <div tal:content="context/get_niver_em"> lista </div>
>
>   </body>
> </html>
> -------------------------------------------------------
>
>
> Ao acessar o template o conteúdo é exibido assim:
>
> -------------------------------------------------------
> <ul> <li>item 1</li> <li>item 2</li> <li>item 3</li> <li>4</li> <li>item
> 5</li> <li>item 6</li> <li>item 7</li> <li>item 8</li> <li>item 9</li>
> <li>item 10</li></ul>
>
> -------------------------------------------------------
>
> Alguém sabe como resolver? Outra questão é que somente consigo acessar
> este template se estiver logado.
> Vou continuar pesquisando aqui também.
>
> Obrigado.
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: Page template com conteúdo de scr ipt python

Zope & Plone - Portugal/Brazil mailing list
Opa Jean, valeu mesmo.

Obrigado.