Blog
API RESTful en Flask – Clases
- Publicado por: Rafael Fernandez
- Categoría: API RESTful Blog
Aprender sobre las clases en Flask
Crear modelos de ejemplo
¿Que son las Clases / Modelos ?
Para poder entender bien el termino de Clase en programación tenemos que usar la abstracción e imaginarnos que debemos representar objetos, de manera que para visualizar estos objetos utilizamos un modelo abstracto llamado “Clase”, este modelo es abstracto por que no estaremos viendo una representación gráfica del objeto que queremos representar, sino que la Clase nos ayudará a describir ese objeto tanto sus características como sus funciones de manera que es posible representar cualquier cosa a través de las clases, para entender mas a fondo se recomienda leer un poco sobre la Programación Orientada a Objetos, que dentro del mundo informático ha representado una verdadera revolución en el desarrollo de software y así podrás aprender sobre algunos términos como el polimorfismo, la herencia, etc.
En nuestro tutorial vamos a utilizar las clases para representar Hoteles, y Ciudades de manera que nuestra API RESTful pueda proveer información concreta sobre estos, con lo cual vamos a crear dos modelos, la creación de cada modelo estará conformada por un conjunto de atributos que se utilizarán para guardar información sobre el objeto en cuestión para nuestro caso los hoteles o las ciudades, y tendremos algunas funciones que serán necesarias para que nuestra información pueda viajar a través con un formato adecuado y entendible como lo es el formato JSON.
Creación de Modelos
Iniciaremos con la creación de la clase para nuestro modelo de Hotel de la siguiente manera:
class Hotel(db.Model): 	__tablename__ = "hotel"
de esta manera definimos nuestra clase para el modelo de Hotel, por ahora solo tenemos la definición así que es necesario agregar los atributos, en nuestro caso solo agregaremos el identificador o “id” del hotel, el nombre del hotel, la ciudad en donde está ubicado y la dirección, cada uno de estos atributos tiene un tipo de dato especifico para poder ser representado, por ejemplo el nombre debe ser un “String” o cadena de caracteres con lo cual indicaremos que este es de tipo “String”, el id es numerico así que indicaremos que es un numero entero o “Integer” y así con los demas atributos con lo cual nos quedará algo como esto:
class Hotel(db.Model): 	__tablename__ = 'hotel' 	id = db.Column(Integer, primary_key=True) 	name = db.Column(String(100), nullable=False) 	city = db.Column(String, nullable=False) 	address = db.Column(String, nullable=False)
Adicionalmente estamos indicando que el atributo ID es clave primaria es decir que identificará univocamente a los hoteles (primary_key=True), y que los demás atributos no pueden ser nulos (nullable=False) así que ya tenemos la primera parte de nuestro modelo ya que faltan las funciones, para esto crearemos 3 funciones, una de inicialización y dos de conversión, de manera que nuestra clase debería quedar así:
from sqlalchemy import Integer, String from app.extensions import db class Hotel(db.Model): 	__tablename__ = 'hotel' 	id = db.Column(Integer, primary_key=True) 	name = db.Column(String(100), nullable=False) 	city = db.Column(String, nullable=False) 	address = db.Column(String, nullable=False) 	def __init__(self, name, city, address): 		self.name = name 		self.city = city 		self.address = address 	@staticmethod 	def from_json(json): 		h = Hotel( 			 name=json.get('name'), 			city=json.get('city'), 			address=json.get('address') 		) 		return h 	def to_json(self): 		 return { 			'id': self.id, 			 'name': self.name, 			 'city': self.city, 			 'address': self.address 		}
Como ven al principio se agrega la importación de librerías necesarias para la construcción de nuestra clase, ya con esto podemos manejar hoteles en nuestro API RESTful sin problemas, así que ahora podemos pasar a la siguiente sección del tutorial que implica la creación física de la base de datos a través de las migraciones de manera que podamos almacenar correctamente los datos de hoteles para que puedan ser consultados a través del API.
➡ ¡Felicidades! Es necesario dominar estos temas ya que son obligatorios para el desarrollo con Flask — Python. Continúa aprendiendo con nuestro curso creación de APIs RESTful con Flask – Python:
[…] ➡ API RESTful en Flask – Clases […]