Mostrando las entradas con la etiqueta python. Mostrar todas las entradas
Mostrando las entradas con la etiqueta python. Mostrar todas las entradas

domingo, 31 de mayo de 2026

🐍Últimos Días - Cursos Programación Web Python y Demás en USD 9.99 o menos según tu país💥

sábado, 27 de diciembre de 2025

🐍 Python Tips: ordenación de namedtuple


🐍 Truco de Python: ordenación de namedtuple

En lugar de diccionarios, se puede usar namedtuple para almacenar datos estructurados, y luego ordenarlos fácilmente por cualquier campo.

from collections import namedtuple

Name = namedtuple("Name", ["first", "last"])
names = [
    Name("Daniel", "Bojorge"),
    Name("Juan", "Pérez"),
    Name("José", "López")
]

# Ordenación por nombre
print(sorted(names, key=lambda n: n.first))

# Ordenación por apellido
print(sorted(names, key=lambda n: n.last))

Este enfoque hace que el código sea más legible y seguro, ya que los campos son accesibles por nombre y son inmutables.



miércoles, 24 de septiembre de 2025

🐍 Python - Tips: 📝Formateo elegante JSON en un línea

⚡️Formatea JSON Elegantes desde un diccionario en 1 línea




Hoy vamos a analizar una función genial y útil: cómo formatear un diccionario en JSON con sangrías de forma bonita usando Python en una sola línea.


import json

data = {
    "user": "Alice",
    "age": 30,
    "skills": ["Python", "Docker", "ML"],
    "active": True,
    "projects": {
        "current": "Chatbot",
        "next": "Data Pipeline"
    }
}

pretty_json = json.dumps(data, indent=4, ensure_ascii=False)
print(pretty_json)

Esto es especialmente útil para depuración, registro o preparación de datos para APIs. Ya no es necesario configurar pprint manualmente: simplemente usa json.dumps con los parámetros indent y ensure_ascii.

Publicado por @debsconsultores


Recuerda visitar la lista de mis cursos y revisa si hay algún descuento activado 

👉 https://bit.ly/cursos-mejor-precio-daniel-bojorge

lunes, 22 de septiembre de 2025

🐍Python - Tips Avanzados para Dominar Contextos y Caché🧠📝

Python - Tips Avanzados para Dominar Contextos y Caché

🔥 Colección de trucos poco comunes de Python que realmente facilitan la vida del desarrollador



¿Cansado de escribir código repetitivo o poco elegante? Aquí tienes una selección de herramientas subestimadas que pueden transformar tu flujo de trabajo como desarrollador Python 🐍✨

🌀 1. functools.cached_property — propiedades perezosas con caché

Ideal para cálculos costosos o llamadas a APIs que no deberían repetirse innecesariamente. Esta propiedad se evalúa una sola vez y luego se almacena en caché para futuras llamadas 🧠💾

from functools import cached_property
import time

class DataFetcher:
    @cached_property
    def heavy_data(self):
        print("⏳ Solicitando datos...")
        time.sleep(2)
        return {"status": "ok", "data": [1, 2, 3]}

obj = DataFetcher()
print(obj.heavy_data)  # Primera llamada → calcula
print(obj.heavy_data)  # Segunda llamada → usa caché

🔁 Ejemplo adicional: cálculo de estadísticas pesadas

class Stats:
    def __init__(self, numbers):
        self.numbers = numbers

    @cached_property
    def average(self):
        print("📊 Calculando promedio...")
        return sum(self.numbers) / len(self.numbers)

stats = Stats([10, 20, 30])
print(stats.average)
print(stats.average)  # No recalcula

🪄 2. contextlib.suppress — ignorar errores con elegancia

Evita bloques try/except innecesarios cuando el error es esperable y no crítico. Útil para operaciones como eliminar archivos, cerrar sockets o acceder a recursos opcionales 🧘‍♂️

import os
from contextlib import suppress

with suppress(FileNotFoundError):
    os.remove("tmp.txt")

🧪 Ejemplo adicional: cerrar múltiples sockets sin romper el flujo

from contextlib import suppress

sockets = [None, open("/dev/null", "rb"), None]

for sock in sockets:
    with suppress(AttributeError):
        sock.close()

🧩 3. Tu propio gestor de contexto con __enter__ / __exit__

Permite encapsular lógica de apertura y cierre de recursos, como archivos, conexiones o configuraciones temporales. Además, puedes manejar errores dentro del contexto sin romper el programa 🛠️🔐

class DemoResource:
    def __enter__(self):
        print("🔓 Recurso abierto")
        return self

    def __exit__(self, exc_type, exc_value, traceback):
        print("🔒 Recurso cerrado")
        if exc_type:
            print(f"⚠️ Error detectado: {exc_value}")
        return True  # Suprime la excepción

with DemoResource() as res:
    print("⚡ Procesando...")
    raise ValueError("¡Algo salió mal!")

🧪 Ejemplo adicional: gestor de archivo temporal

class TempFile:
    def __init__(self, filename):
        self.filename = filename

    def __enter__(self):
        print(f"📁 Creando archivo temporal: {self.filename}")
        self.file = open(self.filename, "w")
        return self.file

    def __exit__(self, exc_type, exc_value, traceback):
        self.file.close()
        print(f"🧹 Eliminando archivo: {self.filename}")
        with suppress(FileNotFoundError):
            os.remove(self.filename)

with TempFile("temp.txt") as f:
    f.write("Contenido temporal")

🗄️ Ejemplo final: simulación de conexión a base de datos

class FakeDBConnection:
    def __enter__(self):
        print("🔌 Conectando a la base de datos...")
        self.db = {"users": ["Alice", "Bob", "Charlie"]}
        return self.db

    def __exit__(self, exc_type, exc_value, traceback):
        print("📴 Cerrando conexión a la base de datos...")
        if exc_type:
            print(f"🚨 Error durante la operación: {exc_value}")
        return False  # No suprime la excepción

try:
    with FakeDBConnection() as db:
        print("👥 Usuarios:", db["users"])
        raise RuntimeError("Falla simulada en la consulta")
except RuntimeError as e:
    print("🧯 Manejado externamente:", e)

💡 Estos trucos no solo hacen tu código más limpio y profesional, sino que también te ayudan a escribir con intención, claridad y resiliencia. ¡Úsalos para brillar como desarrollador! 🚀

#PythonTips #CleanCode #DevLife #PythonTricks #CodeSmart #BackendMagic #Pythonista #DesarrolloElegante #TrucosPython #ContextManagers

jueves, 18 de septiembre de 2025

🐍 Python Tips: Evitar SQL inyección 💉 en cadenas de texto

⚠️ Inyección SQL a través de f-string



Si insertas valores directamente en SQL mediante f-string, un atacante puede ejecutar cualquier código en la base de datos:

name = "Alice'; DROP TABLE accounts; --"
query = f"SELECT * FROM accounts WHERE name = '{name}'"
conn.sql(query)

💥 ¡Y la tabla accounts ha sido eliminada!

¿Por qué sucede esto?

Porque la cadena con el nombre se inserta tal cual y se interpreta como parte de la consulta SQL.

✅ La forma correcta es usar parámetros:

name = "Alice'; DROP TABLE accounts; --"
query = "SELECT * FROM accounts WHERE name = ?"
conn.sql(query, params=(name,))

✔ El nombre se busca como texto, y la base permanece segura.

👉 Recuerda:

Nunca insertes datos de usuario directamente en SQL.

Usa consultas parametrizadas — es una protección confiable contra inyecciones SQL.

@debsconsultores

miércoles, 22 de enero de 2025

🔴🚀 Arrancan Descuento Máximo en Cursos Desarrollo Web [Python,Django,Tenant,Docker]



Espero te encuentres bien en este nuevo año.


Te adjunto los enlaces a todos mis cursos con el descuento máximo activado, cursos con precio máximo de USD 9.99


💥👉 Cupón 202501-1  Válido Hasta el 26 de Enero👇 💥


💥👉 Cupón 202501-2  Válido del 26 al 31 Enero👇 💥


💥👉 Cupón 202501-3 Válido del 31 Enero al 05 de Febrero 👇 💥


💥💥💥👉 Si ya se han vencido los cupones, te invito a revisar descuento oficial de Udemy👇 💥💥💥


🙏Gracias por la confianza brindada al adquirir cada uno de los cursos que ya tienes, si crees que te han sido de utilidad, te invito a que compartas esta publicación con tus contactos y así aprovechen el descuento especial.


Daniel Bojorge

Instructor

lunes, 30 de diciembre de 2024

📢🥇#Traducir Texto con #Google #Translator y #Python 🐍





Sencillo Script para Traducir Texto con Python y Google Translate

lunes, 15 de febrero de 2021

😍 Precio Día de la Amistad 9.99 | Regálate un Curso

 



😍 Precio del Día de la Amistad USD 9.99

Hola estimado estudiante. Primeramente gracias por la confianza brindada al tener alguno de mis cursos.

Desde el día de hoy hasta el 20 de Febrero, están activo cupones del Precio Más Bajo en Udemy para todos mis cursos


💓 No dejes pasar más tiempo, aprende o refuerza una habilidad con los cursos de Desarrollo Web más completos del mercado y al precio más bajo posible.


USD 9.99 ó menos según te ubique la plataforma en cualquiera de los cursos:

Nuevamente agradezco el apoyo y confianza brindada. Te invito a que compartas este correo con tus contactos para que puedan aprovechar esta promoción que vencerá el 20/Feb/2021 con el cupón FEBRERO-2021-1.


Siguientes cupones para terminar el enero serán:

  • FEBRERO-2021-2

  • FEBRERO-2021-3


Aprovecho para informarte que estoy regrabando desde CERO el curso de Domina el ORM de Django, para dejarlo actualizado, ampliado y sin música de fondo.   Está quedando muy bien.





Todos los temas están siendo ampliados, así como agregando muchos temas.  Como estoy en período de recopilación, si ya lo tienes, dime ¿qué te gustaría que agregue? Si no lo tienes, te recomiendo aproveches la oportunidad, ya está actualizada la primera sección, poco a poco iré subiendo más secciones, por motivos de salud, no he podido estar muy activo, pero espero mejorar para poder tenerlo antes que termine Febrero. Verás que el cambio es completo.


Sigo pendiente y recopilando información sobre React, para el siguiente curso.




Espero pronto estar al día.


Recuerda cuidarte 😷


Saludos


Daniel Bojorge

Instructor

jueves, 29 de octubre de 2020

⚡ Última Oferta Octubre | Precio Especial USD 9.99 | Finaliza 31/10/2020 💢

 


Estimado estudiante, te envío la última oferta de Octubre, que finaliza 31/10/2020 con el cupón OCTUBRE-2020-2

Próximo cupón OCTUBRE-2020-3.  Gracias por tu confianza y recuerda que con la inscripción en mis cursos, apoyas para crear más.

¡Recuerda cuidarte!


💢Experto Vue + Django | Precio Especial USD 9.99 

https://www.udemy.com/course/experto-en-vuejs-con-django-rest-framework/?couponCode=OCTUBRE-2020-2


💢Elabora Sistema de Compra y Facturación con Django | Precio Especial USD 9.99 

https://www.udemy.com/course/sistema-de-compra-y-facturacion-con-python-usando-django/?couponCode=OCTUBRE-2020-2


💢Replicación de Base de Datos | Precio Especial USD 9.99 

https://www.udemy.com/course/replicacion-de-base-de-datos-con-symmetricds/?couponCode=OCTUBRE-2020-2


💢Domina el ORM de Django | Precio Especial USD 9.99 


https://www.udemy.com/course/domina-el-orm-de-django/?couponCode=OCTUBRE-2020-2


💢RestFul API con Django Rest FrameWork | Precio Especial USD 9.99 

https://www.udemy.com/course/restful-api-con-python-usando-django-rest-framework/?couponCode=OCTUBRE-2020-2


💢Realiza RestAPI con NetCore | Precio Especial USD 9.99 

https://www.udemy.com/course/construye-web-api-con-asp-net-core-y-visual-studio-code/?couponCode=OCTUBRE-2020-2


💢Programación en Capas con ADO Net | Precio Especial USD 9.99 

https://www.udemy.com/course/debs-programacion-en-capas-full/?couponCode=OCTUBRE-2020-2


💢Entity FrameWork para Principiantes | Precio Especial USD 9.99 

https://www.udemy.com/course/iniciando-con-entity-framework/?couponCode=OCTUBRE-2020-2


💢Django Para Principiantes | Precio Especial USD 9.99

 

https://www.udemy.com/course/django-practico/?couponCode=OCTUBRE-2020-2


Recuerda revisar mis redes sociales para enterarte te primera mano cuando publique contenido de utilidad.



Saludos

Daniel Bojorge

Instructor

lunes, 12 de octubre de 2020

Mantener Activo Menú en el Template con Django

 


Hace algunos días publiqué en el canal de youtube, cómo mantener el menú activo, utilizando el Template Engine de Django, lo puedes ver en acá



En base al video anterior, pudieron ver que  el proceso es bastante extenso si el menú crece mucho.  Partiendo de ahí y que estamos en el Front End, podemos hacerlo más rápido si con jQuery capturamos todos los enlaces y los comparamos con el valor que contenga la variable de django {‌{request.path}}, ya con esto, podemos hacer una comparación aprovechando la nueva implementación de ECMAScript 6, para esto, una vez cargado el DOM (osea dentro de la instrucción $(document).ready(function () {) colocar el siguiente script:


Acá básicamente tomamos todos los enlaces y para tener la certeza que nos referimos a un enlace del menú, hacemos un filtro (en el selector) de todos los elementos que en la clase tengan collapse-item y que su padre sea collapse y el padre de este sea nav-item, dicho de otra forma, todo elemento con clase nav-item que contenga collapsey que a su vez contenga collapse-item , esto traerá todos los enlaces, en este punto, los recorremos todos y preguntamos si la ruta actual (request.path de Django) contiene la ruta del enlace que se está iterando, si lo contiene, entonces marcamos ese enlace agregándole la clase active y al div padre que contiene collpase y a la vez al padre de este que tenga la clase nav-item.


Si tienes dudas, favor hazme la llegar, no creí necesario una clase en video, pero si es necesario indícamelo en un mensaje y procederé a hacerlo.


Recuerda que puedes adquirir el curso en el siguiente enlace:

También puedes revisar si está activa alguna promoción de Udemy para todos mis cursos en este enlace

http://bit.ly/8-cursos-debsconsultores


E Incluso revisar si yo he activado descuento, por lo general, son cupones del mejor precio posible, esto es USD 9.99 viendo este enlace

sábado, 11 de abril de 2020

Usando Django 3 en Proyecto Curso - Clase Gratis



Espera en unas horas una #nueva #clasegratis del curso #Desarrolla Aplicación de Compra y Facturación con #Python usando #Django en @udemy_es

Veremos cómo podemos trabajar con la aplicación del curso usando Django 3

¿Podrías Compartir el enlace?

https://youtu.be/pxT9EUDKZyA

#javascript #jquery #Django3


 
>