Texto original: http://www.devshed.com/c/a/Python/Karrigell-for-Python/
Como o python não foi projetado especificamente para desenvolvimento web, muitos usuários de python estão agora desenvolvendo programas que permitem que o python seja executado na estrutura da web. Karrigell é um dos muitos frameworks python/web atuais. Este artigo fornecerá uma breve introdução ao
Karrigell
.
É importante ressaltar que sua instalação e uso são muito simples. Mesmo os iniciantes em python não ficarão confusos ao usar o Karrigell, e o Karrigell não limita alguns recursos do python por causa de sua estrutura simples. , mas também é muito fácil trabalhar com outros servidores web (como apache), então se você escolher Karrigell, ainda poderá usar o servidor web que estava usando antes.
Este artigo começará em Karrigell. Vamos começar com a instalação e. apresente vários recursos importantes do Karrigell.
Instalando o Karrigell
Como mencionado acima, a instalação do Karrigell não é nada problemática. A primeira etapa que você precisa fazer é baixar o Karrigell mais recente do SourceForge. diretório fácil de encontrar. Em seguida, clique duas vezes em Karrigell.py para iniciar o servidor web integrado do Karrigell. Se você não quiser usar o Karrigell com outros servidores web agora, a instalação do Karrigell termina aqui
. configure seu servidor web para integração com Karrigell, vamos pegar o apache como exemplo. Agora precisamos que o Karrigell seja executado em segundo plano do apache, para que o apache envie solicitações relevantes para Karrigell.
Como o apache geralmente é executado na porta 80, você precisa definir outra porta em execução para Karrigell. Existem duas maneiras de atingir esse objetivo. Uma é usar a linha de comando para concluí-lo ou alterar o arquivo de configuração do Karrigell. veja como Usando a linha de comando, executaremos o Karrigell na porta 8080.
C:Karrigell>Karrigell.py -P 8080
Segundo, você precisa encontrar o Karrigell.ini e depois adicionar a frase
port=8080
Agora você precisa configurar o apache para transferir o relevante A solicitação é redirecionada para Karrigell. De modo geral, você deseja que o Apache lide com qualquer solicitação de arquivo estático, como php. Você pode compartilhar o mesmo caminho com o apache ou configurar um caminho separado. exigir que o Apache passe a solicitação para Karrigell, você precisa adicionar o seguinte ao arquivo httpd.conf do Apache
.
RewriteRule ^/(.*).py(.*) http://localhost:8080/$1.py$2 [L,P]
RewriteRule ^/(.*).ks(.*) http://localhost:8080/$1.ks$2 [L,P]
RewriteRule ^/(.*).hip(.*) http://localhost:8080/$1.hip$2 [L,P]
RewriteRule ^/(.*).pih(.*) http://localhost:8080/$1.pih$2 [P]
Se desejar, você pode definir todas as solicitações de um arquivo específico para serem encaminhadas para Karrigell neste artigo. , O caminho testarea será usado, então configuramos httpd.conf assim:
RewriteEngine On
RewriteRule ^/testarea(.*) http://localhost:8080/testarea$1 [P]
Claro que você pode fazer isso:
RewriteEngine On
RewriteRule ^/testarea/(.*).py(.*)
http://localhost:8080/testarea/$1.py$2 [L,P]
RewriteRule ^/testarea/(.*).ks(.*)
http://localhost:8080/testarea/$1.ks$2 [L,P]
RewriteRule ^/testarea/(.*).hip(.*)
http://localhost:8080/testarea/$1.hip$2 [L,P]
RewriteRule ^/testarea/(.*).pih(.*)
http://localhost:8080/testarea/$1.pih$2 [P]
Scripts e serviços
Scripts Python e serviços Karrigell serão os dois conceitos mais acessíveis para desenvolvedores python usando Karrigell. Os scripts Python são scripts python e os desenvolvedores usam a instrução print. envia o conteúdo para o navegador do usuário. Se você ainda não entendeu, crie um diretório testarea e então começaremos a criar nossos primeiros scripts Python. Crie um novo arquivo test.py:
print "<center>".
imprima "Olá!"
imprimir "<br /><br />"
print "Karrigell está configurado e funcionando."
print "</center>"
Abra este arquivo no navegador Se o seu Karrigell foi configurado corretamente antes, você verá a saída.
Os scripts Python também podem usar formulários facilmente. Vamos criar uma página simples onde os usuários podem inserir seus nomes. Crie um novo arquivo askname.py:
if QUERY.has_key ( "name" ):
imprima "Seu nome é", _name + "."
outro:
print "Qual é o seu nome?<br />"
imprima "<formulário>"
imprimir "<input type='text' name='name' /><br />"
imprimir "<tipo de entrada='enviar' valor='Continuar' />"
print "</form>"
Os serviços Karrigell são escritos de forma semelhante aos scripts Python. O objetivo disso é mapear solicitações para métodos especificados pelo usuário. O nome do método especificado é passado após os serviços Karrigell. call test Este método
http://localhost/testarea/test.ks/test
nos permite escrever este exemplo
def index():
imprima "Função de índice."
teste de definição():
print "Função de teste."
Se você usar esses scripts Python sem passar o nome do método, seu programa executará o método de índice por padrão. Se o teste do nome do método for aprovado, o método de teste será chamado. lançará anormal.
Também é fácil usar os serviços Karrigell para lidar com dados passados em formulários. Vamos criar um
índice ascname.ks def():
print "Qual é o seu nome?<br />"
imprimir "<form action='nameSubmit'>"
imprimir "<input type='text' name='name' /><br />"
imprimir "<tipo de entrada='enviar' valor='Continuar' />"
imprima "</form>"
def nomeEnviar (nome):
print "Seu nome é", name + "."
Claro, permitir acesso público externo aos seus métodos é algo muito perigoso. Para evitar que usuários não autorizados acessem seus métodos, prefixe seus métodos conforme descrito abaixo:
def _private():
de aprovação
para acessar o método _private gerarão uma exceção.
Usando HIP
em askname.py, há uma coisa que vale a pena observar. Este código tem uma instrução de impressão. Se puder ser gerado diretamente sem usar print, será ótimo. Felizmente, Karrigell fornece essa funcionalidade. Isso é chamado de HTML Inside Python e limpará todas aquelas instruções de impressão desagradáveis. E a conversão de askname.py para TML Inside Python também é muito fácil. removido. Exclua a impressão em askname.py e renomeie o arquivo para askname.hip
f QUERY.has_key ( "name" ):
"Seu nome é", _nome + "."
outro:
"Qual é o seu nome?<br />"
"<método de formulário='POST'>"
"<input type='text' name='name' /><br />"
"<tipo de entrada='enviar' valor='Continuar' />"
"</form>"
Isto é HTML Inside Python. Karrigell irá inspecionar seu arquivo e adicionar automaticamente print quando necessário. HTML Inside Python é uma prova de como Karrigell é fácil de aprender
Python Inside HTML
Karrigell fornece HTML
.
Naturalmente, o Inside Python também fornecerá o Python Inside HTML. Como de costume, escreva instruções python em tags especiais e, em seguida, envie os resultados finais para o navegador do usuário. Vamos criar um exemplo simples, random.pih
<% import random %>.
Número aleatório: <b><% print random.random() %></b>
Como você pode ver, o conceito de Python Inside HTML é muito simples. Na verdade, o bloco de código pode ser ainda mais simples:
<%= random. .random() %>
Mas e se você estiver lidando com uma lógica mais complexa, como o processamento de dados de formulário? Os dados de formulário podem ser processados da mesma forma que em scripts Python. Esta é uma réplica de askname.py askname.pih
<%. if QUERY.has_key("nome"): %>
Seu nome é <%= _nome %>.
<% fim %>
<% outro: %>
Qual é o seu nome?<br />
<método de formulário='POST'>
<input type='text' name='name' /><br />
<input type='submit' value='Continuar' />
</form>
<% end %>
Observe o uso de <% end %> Isso marcará o final do bloco de código, assim como o recuo de nossa instrução condicional acima. Outra alternativa é usar a tag indent, que também é usada To.
identificaro
recuo do código.
<% se QUERY.has_key( "nome"): %>
Seu nome é <%= _nome %>.
<% outro: %>
Qual é o seu nome?<br />
<método de formulário='POST'>
<input type='text' name='name' /><br />
<input type='submit' value='Continuar' />
</form>
</indent>
Vamos tentar
mais recursos
como este. Tags podem ser usadas por meio de scripts Python, tagtest.py.
rom HTMLTags import *
print CENTER ( B ( "Test.") )
sessão também pode ser processada em Karrigell, e Karrigell também fornece um bom mecanismo de sessão próximo ao orientado a objetos. Vamos criar um código simples para demonstrar na sessão Karrigell. voltando ao nosso primeiro exemplo, o usuário receberá um número da sorte. Se o usuário atualizar a página, o número ainda estará lá porque o número será salvo na sessão. busque um novo número da sorte, isso é feito fechando a sessão. Crie um serviço Karrigell chamado luckynumber.ks e digite o seguinte código:
importar usuário aleatório
= Session()
def index():
se não for "luckyNumber" no diretório (usuário):
usuário.luckyNumber = random.randint (0, 20)
imprima "Seu número da sorte:", user.luckyNumber
imprimir "<br /><br />"
print "<a href='reset'>Redefinir número da sorte</a>"
definição de redefinição():
usuário.fechar()
print "Seu número da sorte foi redefinido."
imprimir "<br /><br />"
print "<a href='index'>Voltar</a>"
Conclusão
Karrigell fornece quatro métodos para abertura web, scripts Python, serviços Karrigell, HTML Inside Python e Python Inside HTML Cada método tem suas próprias características. uma vantagem comum: a simplicidade de uso. Karrigell transforma o desenvolvimento web em algo elegante e simples. Quer você use Karrigell sozinho ou em combinação com o apache, é surpreendentemente simples. Seja para iniciantes ou veteranos, Karrigell é uma boa escolha. .