Você está aqui: Página Inicial Documentação Tutoriais Tutorial CherryPy Estrutura do CherryPy, Filters e Conclusão
Ações do documento

Estrutura do CherryPy, Filters e Conclusão

Explicação básica sobre a estrutura básica do módulo do CherryPy, sobre os filters, e o fim do tutorial.

dirceu

Tradução de http://docs.cherrypy.org/cherrypy-tutorial
Página 4 de 4.

A estrutura do módulo cherrypy

Muitos dos recursos do CherryPy são disponíveis pelo módulo cherrypy. Ele contém muitos membros:

  • Como mencionado anteriormente, cherrypy.root é a árvore de objetos publicados; o objeto em cherrypy.root é a base da aplicação, e os objetos que ele contém formam a árvore de objetos da aplicação.
  • cherrypy.server  contém a API para controlar o servidor.
  • cherrypy.request contém toda a informação que vem com uma requisição HTTP depois que é parseada e analisada pelo CherryPy.
    • cherrypy.request.headers é um dicionário que contém as opções de cabeçalho que foram enviadas como parte da requisição.
    • cherrypy.session é um dicionário automaticamente gerado pelo CherryPy; ele pode ser usado para guardar dados na sessão em um cookie. Para isso funcionar você tem que habilitar as sessões setando session_filter.on como True na sua configuração.
  • cherrypy.response contém os dados usados para construir a resposta HTTP.
    • cherrypy.response.headers contém um dicionário com as opções do cabeçalho que serão enviados na resposta HTTP, antes do conteúdo ser enviado.
    • cherrypy.response.body contém o conteúdo da página web que será enviado como resposta.

Filters (Filtros)

O núcleo do CherryPy é extremamente limpo e leve. Ele contém somente os recursos necessários para suportar o protocolo HTTP e para executar o objeto certo para cada requisição. Recursos adicionais podem ser adicionados usando filters.

Um filter é um objeto que tem a chance de trabalhar em uma requisição assim que ela chega para a cadeia de processamento do CherryPy. Vários filtros são providos como parte da biblioteca padrão do CherryPy, disponível em cherrypy.lib.filter. Alguns exemplos são:

  • DecodingFilter: automaticamente trata os dados Unicode da requisição, convertendo as strings "cruas" enviadas pelo navegador para strings Python nativas.
  • EncodingFilter: automaticamente converte a resposta de strings Unicode nativas do Python para alguma outra codificação de caracteres (Latin-1 ou UTF-8, por exemplo).
  • GzipFilter: Compacta o conteúdo "on the fly", usando o formato gzip. Isso poupa bandwidth.
  • XmlRpcFilter: Implementa uma camada especial de adaptação para XML-RPC acima do CherryPy padrão. Essa camada traduz os dados da requisição e resposta (um processo chamado 'marshalling').

Filters provém muita flexibilidade. Diferentes filters podem ser aplicados para diferentes partes da aplicação, e a ordem dos filtros pode ser modificada. O programador pode escrever filters customizados para aplicações específicas, mudando o comportamento do CherryPy sem ter que modificar seus mecanismos internos.

A lista de filters para qualquer parte do site é configurada habilitanto-a no arquivo de configuração do servidor:


[/]
encoding_filter.on = True
gzip_filter.on = True

Nesse caso, a aplica~çao usa strings Unicode para o conteúdo que ela gera; a tradução para utf8 será feita automaticamente. Adicionalmente, todo o conteúdo será compactado com Gzip, poupando bandwidth.

Conclusão

Esse tutorial cobre apenas os recursos básicos do CherryPy, mas ele tenta apresentá-los de uma maneira que facilite o aprendizado. A distribuição do CherryPy vem com vários bons tutoriais; apesar disso, a melhor maneira de dominar o CherryPy é usá-lo para escrever suas próprias aplicações web. O servidor web embutido facilita não apenas os testes, mas também a distribuição de aplicações locais, ou até mesmo pequenos web sites. Teste-o e nos conte o que você fez com ele!

 
por Dirceu Pereira TiegsÚltima modificação 11/05/2006 09:27
Contribuidores: Remi Delon (Autor), Dirceu Pereira Tiegs (Tradutor)
Creative Commons

O conteúdo deste site está sob licença Creative Commons