Aquí está la explicación de este fragmento de código:
Nuestra variable DB recibe el objeto MySQLdb.connect; dentro de esa función, vamos a configurar sus parámetros de acuerdo con su autenticación de base de datos, como un host, puerto, usuario, contraseña y su base de datos. A continuación, declaramos otra variable que recibirá el objeto db.cursor que nos ayudará a administrar la conexión DB actual. Luego informamos nuestra consulta SQL, en este caso, tenemos en nuestro sistema que los productos de la página solo reciben el product_id almacenado en nuestra base de datos.
*Importante:* tenemos que declarar try catch clause
5. Luego usamos el objeto del cursor con el método de ejecución y pasamos la variable de texto de consulta SQL, en la siguiente línea la variable de resultados obtiene todos los productos obtenidos de nuestra consulta; para esto, vamos a necesitar una matriz para almacenar la información.
5.1 A continuación usamos un for loop para recorrer cada producto en el objeto de resultados, de modo que la función products.append nos permite agregar el resultado a la matriz de productos. En este caso, agregamos la URL al concatenar la identificación del producto, puede ver el resultado [0] que es la identificación del producto.
5.2 Ahora, la cláusula except es nuestro método de captura que sigue a nuestro try, en python usamos el try: except. Los parámetros que esta cláusula recibe son el momento en que ocurre el error, el tipo de error y el error del nombre, esto es para fines de depuración, y luego imprimimos las variables de error.
5.3 Si hay un error, cerramos la conexión DB y devolvemos la matriz de productos que contiene las URL de los productos.
6. El siguiente caso es sobre la misma función, pero simplemente cambia el formato de URL que se realizará para las categorías que reciben slug_url.
[def get_categories():
db = MySQLdb.connect(host='yourhost', port=3306,
user='youruser', passwd='somRanD0mPass',
db='yourDB')
cursor = db.cursor()
sql = \
"""
select slug_url from categories;
"""
try:
categories = []
cursor.execute(sql)
results = cursor.fetchall()
for result in results:
categories.append('https://www.mysite.com/categories/'
+ str(result[0]))
except (RuntimeError, TypeError, NameError):
print RuntimeError + TypeError + NameError
db.close()
return categories]