Site is under maintenance mode. Please wait few min!
Saltar al contenido

Libro Blanco: Ejecutando aplicaciones nativas de la nube en los gobernantes de DigitalOcean

marzo 4, 2020

 

Estatus: Desaprobado

Este artículo incluye una versión de Ubuntu que ya no se admite. Si actualmente está operar un servidor que ejecuta Ubuntu 12.04, es muy recomendable actualizar o migrar a una versión compatible de Ubuntu:

  • Actualiza a Ubuntu 14.04.
  • Actualización de Ubuntu 14.04 a Ubuntu 16.04
  • migrar los datos del servidor a una versión compatible

Motivo: Ubuntu 12.04 alcanzó fin de vida (EOL) el 28 de abril 2017 y ya no recibe actualizaciones de seguridad o actualizaciones. Esta guía ya no se mantiene.

Ver lugar: Esta guía aún podría ser útil como una referencia, pero no puede funcionar en otras versiones de Ubuntu. Si está disponible, se recomienda encarecidamente el uso de una guía escrita para la versión de Ubuntu que está utilizando. Puede utilizar la funcionalidad de búsqueda en la parte superior de la página para encontrar una versión más reciente.

Introducción

Python es un lenguaje excelente para la programación web debido a su flexibilidad y funcionalidad de alto nivel. marcos web pueden hacer que las aplicaciones de programación web mucho más simple porque conectan muchos de los componentes necesarios para una interfaz web robusto.

Mientras que algunos marcos web intentan proporcionar todo lo que un usuario podría querer usar para desarrollar una aplicación, otros tratan de mantenerse fuera del camino mientras se ocupa de las importantes cuestiones difíciles de implementar,. Botella es un marco de Python que cae en la segunda categoría. Es extremadamente ligero, pero lo hace muy fácil de desarrollar aplicaciones de forma rápida.

En esta guía, vamos a cubrir cómo configurar y utilizar la botella para crear aplicaciones web sencillas en un servidor de Ubuntu 12.04.

Cómo instalar Botella

Python, el lenguaje de programación que se construye para la botella, viene instalado en Ubuntu por defecto.

instalar y activar un entorno virtual de

Vamos a instalar el paquete virtualenv para aislar nuestro proyecto de Python desde el entorno Python del sistema.

posibilidad de instalar esto fácilmente desde los repositorios:

sudo apt-get update
sudo apt-get install python-virtualenv

El virtualenv software nos permite crear un entorno separado, contenida para nuestros proyectos de Python que no afecte a todo el sistema operativo. Vamos a crear una carpeta de proyectos en nuestro directorio principal y luego crear un entorno virtual dentro de esta carpeta:

mkdir ~/projects
cd ~/projects
virtualenv --no-site-packages venv

Esto crea un directorio llamado Venv dentro del directorio de proyectos. Se ha instalado algunas utilidades Python dentro de esta carpeta y ha creado una estructura de directorios para instalar herramientas adicionales.

Debemos activar el entorno virtual antes de comenzar a trabajar en nuestro proyecto:

source venv/bin/activate

El símbolo del sistema cambiará para reflejar el hecho de que estamos operando en un entorno virtual ahora. Si tiene que salir del entorno virtual, puede escribir esto en cualquier momento:

deactivate

no desactiva su entorno virtual en este punto.

Instalar la botella

Una de las herramientas que el programa fue instalado virtualenv PIP.

Esta herramienta nos permite instalar fácilmente paquetes de Python desde el índice de paquetes Python, un repositorio en línea.

Si queremos buscar los paquetes de Python que tienen que ver con la botella, que puede funcionar:

pip search bottle

Vamos a empezar con sólo instalar el paquete de botella:

pip install bottle

Después de que se complete el proceso, debemos tener la capacidad de utilizar el marco de la botella dentro de nuestras aplicaciones.

crear su primera aplicación de botella

, como la mayoría de los marcos, implementa una versión del software de patrón MVC. MVC significa modelo, visión, y el controlador, y que describe una decisión de separar las diferentes funciones de una interfaz de usuario.

El modelo es una representación de un conjunto de datos y se encarga de almacenar, consultar y actualizar los datos. La vista describe cómo la información debe representar al usuario. Se utiliza para dar formato y controlar la presentación de los datos. El controlador es el principal centro de procesamiento de la aplicación, que decide cómo responder a peticiones de los usuarios. aplicaciones de botellas

pueden ser increíblemente sencilla. En su forma más desnuda, que pueden poner en práctica todos estos componentes en un solo archivo. Vamos a crear una aplicación “Hello World” para mostrar cómo se hace esto.

con su editor, crear una aplicación Python llamada hello.py:

nano hello.py

Dentro de este archivo, vamos a la primera importación alguna funcionalidad del paquete de la botella. Esto nos permitirá utilizar las herramientas de marco dentro de nuestra aplicación:

from bottle import route, run

Esta línea le dice a nuestro programa que queremos importar la ruta y ejecutar módulos del paquete de la botella.

El módulo de ejecución que estamos importando se puede utilizar para ejecutar la aplicación en un servidor de desarrollo, que es ideal para ver rápidamente los resultados de su programa.

El módulo de rutas que estamos importando es responsable de decirle a la aplicación lo consiguen peticiones de URL manejados por que las funciones de Python. aplicaciones de botellas implementan encaminamiento llamando a una sola función de Python para cada URL solicitada. A continuación, devuelve los resultados de la función para el usuario.

podemos añadir una ruta en este momento que coincidirá con el golpeteo URL / hola:

from bottle import route, run

@route('/hello')

Este decorador de ruta coincide con la URL / hola cuando se solicita ese camino en el servidor. La función que sigue directamente se ejecutará cuando esto coincide:

from bottle import route, run

@route('/hello')
def hello():
return "

Hello World!

"

Esta función es muy simple, pero completa el único requisito de una función de enrutamiento: devuelve un valor que se puede mostrar en el navegador web. En este caso, el valor es una cadena HTML simple. Podríamos eliminar las etiquetas de cabecera H1 y la misma información se mostrará de una manera sin decorar.

Por último, tenemos que ejecutar nuestra aplicación utilizando el servidor de desarrollo:

from bottle import route, run

@route('/hello')
def hello():
return "

Hello World!

"

run(host='0.0.0.0', port=8080)

Esta línea se ejecutará la instancia del servidor. Pasando el parámetro de host = ‘0.0.0.0’, esto servirá el contenido a cualquier equipo, no sólo la máquina local. Esto es importante ya que nuestra aplicación se está alojado de forma remota. El parámetro puerto especifica el puerto que este va a utilizar.

Guardar y cerrar el archivo.

Nos puede ejecutar esta aplicación escribiendo esto:

python hello.py

Usted puede visitar esta aplicación en su navegador web, vaya a su dirección IP, seguido por el puerto elegimos para funcionar en (8080), seguido de la ruta que hemos creado ( / hola):

http://your_ip:8080/hello

puede detener el servidor en cualquier momento escribiendo “CTRL-C” en la ventana de terminal.

Implementar el diseño MVC Paradigma

Ahora hemos implementado nuestra primera aplicación. Sin duda fue simple, pero en realidad no poner en práctica los principios MVC, o hacer algo particularmente interesante. Vamos a tratar de hacer una aplicación más complicado este momento.

Crear empezar el modelo

Vamos con nuestro modelo. Esta es la parte de nuestro programa que maneja el almacenamiento de datos. Botella se puede implementar fácilmente una variedad de backends de datos mediante el uso de plugins.

Vamos a utilizar un archivo de base de datos SQLite para nuestra base de datos. Se trata de una base de datos muy simple diseñado para tareas ligeras que nuestra aplicación puede implementar.

Instalar el software SQLite en Ubuntu para asegurarse de que tenemos el software disponible para crear e interactuar con estas bases de datos:

sudo apt-get install sqlite

también tenemos que descargar e instalar la botella plugin que nos permitirá utilizar estas bases de datos:

pip install bottle-sqlite

ahora que tenemos los componentes, podemos crear una base de datos simple que podemos almacenar nuestros datos en. vamos a crear un archivo de Python que va a generar una base de datos SQLite con algunos datos en ella cuando corremos el guión. Podríamos hacer esto en el intérprete de Python, pero de esta manera hace que sea fácil de repetir.

nano picnic_data.py

Aquí, nos importa el paquete SQLite. Entonces, podemos ejecutar un comando que crea nuestros datos de la tabla e inserta en nuestra mesa. Por último, nos comprometemos los cambios:

import sqlite3
db = sqlite3.connect('picnic.db')
db.execute("CREATE TABLE picnic (id INTEGER PRIMARY KEY, item CHAR(100) NOT NULL, quant INTEGER NOT NULL)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('bread', 4)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('cheese', 2)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('grapes', 30)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('cake', 1)")
db.execute("INSERT INTO picnic (item,quant) VALUES ('soda', 4)")
db.commit()

guardar y cerrar el archivo.

Podemos ejecutar el archivo, lo que creará un archivo de base de datos llamada picnic.db dentro de nuestro directorio actual:

python picnic_data.py

Nuestro modelo parte de nuestro programa es ahora bastante completo. Podemos ver que nuestro modelo dictará un poco cómo funcionan nuestros porción necesidad de control para interactuar con nuestros datos.

Crear el controlador

Ahora que tenemos una base de datos creada, podemos empezar a desarrollar nuestra aplicación principal. Este implementará principalmente nuestra funcionalidad del controlador. También será el archivo que más se parece a nuestra primera aplicación.

Crear un archivo llamado picnic.py para guardar nuestro principal de la aplicación:

nano picnic.py

Dentro de este archivo, tenemos que importar algunas cosas desde el paquete de botella, al igual que antes. Necesitamos algunos módulos adicionales que no hemos usado antes. Además, tenemos que importar la funcionalidad de SQLite:

import sqlite3
from bottle import route, run, template

A continuación, vamos a definir una ruta que coincida con la ruta URL / día de campo:

import sqlite3
from bottle import route, run, template

@route('/picnic')

vamos a implementar la función que se conecta a la base de datos, obtiene los datos de la mesa, y llama nuestra “vista” para representar la página. Por último, vuelve a la salida con formato a nuestro usuario.

import sqlite3
from bottle import route, run, template

@route('/picnic')
def show_picnic():
db = sqlite3.connect('picnic.db')
c = db.cursor()
c.execute("SELECT item,quant FROM picnic")
data = c.fetchall()
c.close()
output = template('bring_to_picnic', rows=data)
return output

Por último, tenemos que poner nuestra orden de marcha para ejecutar el servidor real:

import sqlite3
from bottle import route, run, template

@route('/picnic')
def show_picnic():
db = sqlite3.connect('picnic.db')
c = db.cursor()
c.execute("SELECT item,quant FROM picnic")
data = c.fetchall()
c.close()
output = template('bring_to_picnic', rows=data)
return output

run(host='0.0.0.0', port=8080)

Guardar y cerrar el archivo.

Nos conectarse a la base de datos con el comando db = sqlite3.connect ( ‘picnic.db’). Consultamos la base de datos y seleccionamos todos nuestros valores con los siguientes cuatro líneas.

La línea en la que nosotros llamamos la “vista” a formato a nuestros datos se emite = plantilla ( ‘bring_ a _picnic’, = filas de datos). Esto requiere una plantilla (ver) llamada llevar a picnic.tpl a formato los datos. Se pasa la variable “datos” como las “filas” variable de plantilla.

Nos va a crear este archivo de plantilla en la siguiente sección.

crear la vista

Ahora que tenemos nuestro modelo y el controlador, lo único que queda es para crear nuestro punto de vista. Esto se maneja fácilmente con motor de plantillas incorporado en la botella.

La aplicación buscará una plantilla que coincida con el nombre que se da en la función de plantilla, terminando con .tpl. Esto puede ser ya sea en el directorio principal del proyecto, o en un directorio llamado “punto de vista”.

Crear un archivo que coincida con el que llamamos a la función de plantilla:

nano bring_to_picnic.tpl

En este archivo, podemos mezclar HTML y programación. El nuestro será muy simple. Se utilizará un bucle para crear una tabla, que vamos a llenar con nuestros datos del modelo:

Things to bring to our picnic

%for col in row:

Item

Quantity
%for row in rows:

{{col}}
%end

%end

Esto hará que nuestra página en HTML. El lenguaje de plantillas que vemos aquí es básicamente Python. El “filas” variable que pasamos a la plantilla está disponible para su uso en el diseño de la salida.

Nos puede escribir líneas de Python precediendolas con “%”. Podemos acceder a las variables dentro del HTML utilizando el “{{var}}” sintaxis.

Guardar y cerrar el archivo.

ver los resultados

Nuestra solicitud se ha completado y que puede iniciar el programa llamando a Python en el archivo principal:

python picnic.py

Podemos ver los resultados por visitar nuestra dirección IP y el puerto seguido por la ruta URL que hemos creado:

http://your_ip:8080/picnic

Conclusión

Por ahora, usted debe ser capaz de ver cómo se puede construir aplicaciones complejas utilizando un simple, esqueleto desnudo de micro-marco como la botella. Aunque nuestros ejemplos eran simples, es fácil de tomar ventaja de la funcionalidad más avanzada. sistema de plugins de

botella es también un activo importante. Plugins son compartidos de forma activa dentro de la comunidad y es fácil de implementar un comportamiento más complejo a través del sistema de complementos. Una manera fácil de encontrar los plugins es utilizando el comando de búsqueda de pepita botella. Esto le dará una idea de algunas de las opciones más populares.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *