Texto original: http://www.devshed.com/c/a/Python/Karrigell-for-Python/
Debido a que Python no está diseñado específicamente para el desarrollo web, muchos usuarios de Python ahora están desarrollando programas que permiten que Python se ejecute en el marco. de la web. Karrigell es uno de los muchos frameworks python/web actuales. Este artículo brindará una breve introducción a Karrigell.
Karrigell
es un framework python/web potente y flexible que proporciona una variedad de soluciones para el desarrollo web. Es importante destacar que su instalación y uso son muy simples. Incluso los principiantes en Python no se confundirán al usar Karrigell, y Karrigell no limita algunas características de Python debido a su estructura simple. Puede usar su propio servidor web para completar el trabajo. , pero también es muy fácil trabajar con otros servidores web (como apache), por lo que si elige Karrigell, aún puede usar el servidor web que ha estado usando antes.
Este artículo comenzará desde Karrigell. Comencemos con la instalación y. Introduzca varias características importantes de Karrigell.
Instalación de Karrigell
Como se mencionó anteriormente, la instalación de Karrigell no es problemática en absoluto. El primer paso que debe realizar es descargar la última versión de Karrigell de SourceForge. Después de descargar el paquete zip, extráigalo. directorio fácil de encontrar Luego haga doble clic en Karrigell.py para iniciar el servidor web integrado de Karrigell. Si no desea utilizar Karrigell con otros servidores web ahora, la instalación de Karrigell termina aquí
. configure su servidor web para integrarlo con Karrigell, tomemos apache como ejemplo. Ahora necesitamos que Karrigell se ejecute en segundo plano de apache, para que apache envíe solicitudes relevantes a Karrigell.
Debido a que Apache generalmente se ejecuta en el puerto 80, debe configurar otro puerto en ejecución para Karrigell. Hay dos formas de lograr este propósito. Una es usar la línea de comando para completarlo, o puede cambiar el archivo de configuración de Karrigell. vea cómo Usando la línea de comando, ejecutaremos Karrigell en el puerto 8080.
C:Karrigell>Karrigell.py -P 8080
Segundo, necesita encontrar Karrigell.ini y luego agregar la oración
port=8080
Ahora necesita configurar Apache para transferir la solicitud relevante se redirige a Karrigell. En términos generales, desea que Apache maneje cualquier solicitud de archivo estático, como php. Puede compartir la misma ruta con Apache o puede configurar una ruta separada. requiere que Apache pase la solicitud a Karrigell, debe agregar lo siguiente al archivo httpd.conf de Apache
.
Reescribir regla ^/(.*).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]
Si lo desea, puede configurar todas las solicitudes de un archivo específico para que se reenvíe a Karrigell. , Se utilizará la ruta del área de prueba, por lo que configuramos httpd.conf así:
RewriteEngine On
RewriteRule ^/testarea(.*) http://localhost:8080/testarea$1 [P]
Por supuesto que puedes hacer esto:
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 y servicios
Los scripts de Python y los servicios de Karrigell serán los dos conceptos más accesibles para los desarrolladores de Python que usan Karrigell. Los scripts de Python son scripts de Python y los desarrolladores usan la declaración impresa. envía el contenido al navegador del usuario. Si aún no lo comprende, cree un directorio de área de prueba y luego comenzaremos a crear nuestros primeros scripts de Python. Cree un nuevo archivo test.py:
imprima "<centro>".
imprime "¡Hola!"
imprimir "<br /><br />"
print "Karrigell está configurado y funcionando."
print "</center>"
Abra este archivo en el navegador. Si su Karrigell se ha configurado correctamente antes, verá el resultado.
Los scripts de Python también pueden usar formularios fácilmente. Creemos una página simple donde los usuarios puedan ingresar sus nombres. Cree un nuevo archivo Askname.py:
if QUERY.has_key ("nombre"):
imprime "Tu nombre es", _nombre + "."
demás:
imprimir "¿Cuál es tu nombre?<br />"
imprimir "<formulario>"
imprimir "<tipo de entrada='texto' nombre='nombre' /><br />"
imprimir "<tipo de entrada='enviar' valor='Continuar' />"
print "</form>"
Los servicios de Karrigell se escriben de manera similar a los scripts de Python. El propósito de esto es asignar solicitudes a métodos especificados por el usuario. El nombre del método especificado se pasa después de los servicios de Karrigell. llamar a prueba Este método
http://localhost/testarea/test.ks/test
nos permite escribir este ejemplo
def index():
imprimir "Función de índice".
prueba de definición():
print "Función de prueba".
Si usa estos scripts de Python sin pasar el nombre del método, su programa ejecutará el método de índice de forma predeterminada. Si se pasa la prueba del nombre del método, se llamará al método de prueba. arrojará algo anormal.
También es fácil usar los servicios de Karrigell para manejar datos pasados en formularios. Creemos un
índice def ascname.ks():
imprimir "¿Cuál es tu nombre?<br />"
imprimir "<acción del formulario='nombreEnviar'>"
imprimir "<tipo de entrada='texto' nombre='nombre' /><br />"
imprimir "<tipo de entrada='enviar' valor='Continuar' />"
imprimir "</form>"
def nombreEnviar (nombre):
print "Su nombre es", nombre + "."
Por supuesto, permitir el acceso público externo a sus métodos es algo muy peligroso. Para evitar que usuarios no autorizados accedan a sus métodos, prefije sus métodos como se describe a continuación:
def _private():
pasar
al método _private generarán una excepción.
Al usar HIP
en Askname.py, hay una cosa que vale la pena señalar. Este código tiene una declaración de impresión. Si se puede generar directamente sin usar print, será genial. Afortunadamente, Karrigell proporciona dicha funcionalidad. Esto se llama HTML dentro de Python y esto limpiará todas esas declaraciones impresas desagradables. Y la conversión de Askname.py a TML dentro de Python también es muy fácil. eliminado Elimine la impresión en Askname.py y cambie el nombre del archivo a Askname.hip
f QUERY.has_key ("nombre"):
"Tu nombre es", _nombre + "."
demás:
"¿Cuál es tu nombre?<br />"
"<método de formulario='POST'>"
"<tipo de entrada='texto' nombre='nombre' /><br />"
"<tipo de entrada='enviar' valor='Continuar' />"
"</form>"
Esto es HTML dentro de Python. Karrigell inspeccionará su archivo y agregará automáticamente la impresión cuando sea necesario. HTML dentro de Python es un testimonio de lo fácil que es aprender Python
dentro de HTML
.Karrigell proporciona HTML
.
Inside Python, naturalmente, también proporcionará Python Inside HTML. Como de costumbre, escriba declaraciones de Python en etiquetas especiales y luego envíe los resultados finales al navegador del usuario. Creemos un ejemplo simple, random.pih
<% import random %>.
Número aleatorio: <b><% print random.random() %></b>
Como puede ver, el concepto de Python dentro de HTML es muy simple. De hecho, el bloque de código puede ser aún más simple:
<%= aleatorio. .random() %>
¿Pero qué pasasi
se trata de una lógica más compleja, como el procesamiento de datos de formulario?
si QUERY.has_key ("nombre"): %>
Tu nombre es <%= _name %>.
<% final %>
<% más: %>
¿Cuál es tu nombre?<br />
<método de formulario='POST'>
<tipo de entrada='texto' nombre='nombre' /><br />
<tipo de entrada='enviar' valor='Continuar' />
</formulario>
<% end %>
Tenga en cuenta el uso de <% end %>. Esto marcará el final del bloque de código, al igual que la sangría de nuestra declaración condicional anterior. Otra alternativa es usar la etiqueta de sangría, que también se usa para.
identificarla
sangría del código.
<% si QUERY.has_key ("nombre"): %>
Tu nombre es <%= _name %>.
<% más: %>
¿Cuál es tu nombre?<br />
<método de formulario='POST'>
<tipo de entrada='texto' nombre='nombre' /><br />
<tipo de entrada='enviar' valor='Continuar' />
</formulario>
</indent>
Probemos
más funciones
como esta. Las etiquetas se pueden usar a través de scripts de Python, tagtest.py.
rom HTMLTags import *
print CENTER ( B ("Test." ) )
La sesión también se puede procesar en Karrigell, y Karrigell también proporciona un buen mecanismo de sesión cercano a la orientación a objetos. Creemos un código simple para demostrarlo en la sesión de Karrigell. Volviendo a nuestro primer ejemplo, el usuario recibirá un número de la suerte. Si actualiza la página, el número seguirá ahí porque se guardará en la sesión. Por supuesto, el usuario tendrá la opción de volver a hacerlo. busque uno nuevo Número de la suerte, esto se hace cerrando la sesión. Cree un servicio de Karrigell llamado luckynumber.ks e ingrese el siguiente código:
usuario
aleatorio
= Sesión()def index():
si no es "luckyNumber" en el directorio (usuario):
usuario.númeroafortunado = aleatorio.randint (0, 20)
imprimir "Tu número de la suerte:", usuario.luckyNumber
imprimir "<br /><br />"
print "<a href='reset'>Restablecer número de la suerte</a>"
definición de reinicio():
usuario.cerrar()
imprime "Tu número de la suerte se ha restablecido".
imprimir "<br /><br />"
print "<a href='index'>Volver</a>"
Conclusión
Karrigell proporciona cuatro métodos para apertura web, scripts Python, servicios Karrigell, HTML Inside Python y Python Inside HTML. Cada método tiene sus propias características. Una ventaja común: la simplicidad de uso convierte el desarrollo web en algo elegante y simple, ya sea que use Karrigell solo o en combinación con Apache, es sorprendentemente simple porque, ya sea para principiantes o veteranos, Karrigell es una buena opción. .