El blog de django.mx


tips de desarrollo para django


Bien quiero compartir algunos típs de desarrollo ..

Debugging Variables

Antes de programar en django programaba en php y para debuggear lo que hacia era

<?php
var_dump($myvar);
exit(0);

Con esto imprimía la variable y detenia el proceso de php. El equivalente a esto es:

assert False, (myvar,)

Que hace exactamente lo mismo, y lo pongo como tupla por que asi me muestra la variable si es str o unicode.

Otra forma de debugging pero solo funciona con el runserver corriendo es hacer:

import pdb; pdb.set_trace()

Y lo que hace es levantar el python debugger en la linea donde lo pusiste. más info en pdb https://docs.python.org/2/library/pdb.html

NO uses print

Muchos de nosotros usamos ´print´ en el código de django. Si nos ayuda y nos sirve pero despues los dejamos ahí y cuando pasamos a producción esos prints aparecen en los logs del server y entonces es mala idea!

Lo correcto es usar los loggers ya que podemos controlar el outout hacia donde queremos mandarlo ...

aqui un ejemplo de logger

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
            'verbose': {
                'format': '%(levelname)s %(asctime)s %(module)s %(filename)s %(lineno)d  %(funcName)s %(message)s'
            },
            'colored': {
                    '()': 'djangocolors_formatter.DjangoColorsFormatter',
                'format': '%(levelname)s %(asctime)s %(module)s %(filename)s %(lineno)d  %(funcName)s %(message)s'

            },
    },
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
             'formatter':'colored'
        },
    },
    'loggers': {
        '*': {
            'handlers': ['console'],
            'level': 'DEBUG',
        },
    },
}

Aquí uso paquete (django-color-formatter)[https://github.com/tiliv/django-colors-formatter], que deja mas bonito mí consola.

consola

consola


Facebook Twitter