3.4 KiB
title | localeTitle |
---|---|
Bottle | Botella |
El marco de la botella nos permite comenzar a trabajar de manera muy rápida y sencilla con una aplicación web básica.
A continuación se detalla cómo escribir y ejecutar una aplicación web de saludo simple donde podemos ingresar nuestro nombre en un formulario, presione enviar y recibir un saludo.
-
Use
pip
para instalar el paquete de la botella.pip install bottle
-
Cree un archivo
html
para servir al cargar el sitio. Por ejemploindex.html
.Agreguemos un encabezado y un formulario básico a esta página.
<h3>Say Hello</h3> <form action="/hello" method="get"> Name: <input type="text" name="name"><br><br> <input type="submit"> </form>
-
Crea un nuevo archivo python, ejemplo
main.py
-
En la primera línea del archivo necesitamos importar las funciones de obtención, solicitud y ejecución desde el módulo de botella.
from bottle import get, request, run
-
Ahora definimos nuestra función para servir nuestro archivo html cuando se accede a la página raíz.
Aquí usamos el decorador
@get
, que especifica que esta función debe responder aHTTP GET
solicitudesHTTP GET
y pasar'/'
como la ruta por la que se invocará la función.A continuación definimos la función
index()
usando la palabra clavedef
.Para leer y devolver el archivo html que creamos en el paso 2, usamos lo que se llama un administrador de contexto. Esto se encarga de abrir y cerrar el archivo para nosotros, lo que nos permite leer los archivos y los contenidos y devolverlos con la declaración de
return
.@get('/') def index(): with open('./index.html') as f: return f.read()
-
Para que el sitio se ejecute y escuche las solicitudes, debemos agregar una llamada a la función de
run
marcos de la botella de la siguiente manera.Aquí pasamos el host en el que se ejecutará la aplicación web, en este caso
localhost
, y el puerto en el que debe escuchar las solicitudes HTTP. -
Ejecute la aplicación y cárguela en su navegador http: // localhost: 8080 /, debería ver el archivo html que creamos en el navegador.
Si ingresamos nuestro nombre y presionamos enviar ahora, obtendremos un error
HTTP 404
ya que aún no hemos definido la función para responder a esta solicitud.run(host='localhost', port=8080)
-
De vuelta en nuestro archivo
main.py
, ahora necesitamos definir la función para responder al sumbitting nuestro formulario.Nuevamente usamos el decorador
@get
aquí, sin embargo, esta vez pasamos en'/.hello'
como el camino. Puede observar que esta es la misma ruta que definimos en el atributo de acción de nuestro formulario enindex.html
.A continuación, recuperamos el valor del
name
de la url. Al enviar el formulario, los datos del formulario están url codificados de esta manera http: // localhost: 8080 / hello? Name = Jon + SnowFinalmente devolvemos nuestro saludo, agregando el nombre ingresado en nuestro formulario.
@get('/hello') def hello(): name = request.query['name'] return f'Hello {name}'