En esta tarea completaremos el 'back-end' de nuestra aplicación añadiendo la autentificación de usarios y un sistema de registro (logs)
Django tiene todo lo necesario para el autentificar usuarios, incluyendo tablas, formularios, etc. Pero hay
un plugin para Django que facilita todo esto: django-registration-redux,
que incluye también las plantillas, el registro en uno o dos pasos (con activación de la cuenta por e-mail), gestión de la contraseña olividada con tokens, etc.
$ pip install django-registration-redux
Y seguimos los pasos de
User Authentication with Django-Registration-Redux, incluyendo 'registration'
en las INSTALLED_APPS de settings.py
, y las rutas en urls.py
Como indica el tutorial, las plantillas las podemos coger de macdhuibh/django-registration-templates y las modificamos con boostrap, para que queden como esta o similar
Ahora ya podremos gestinar la autorización de usuarios en las vistas, simplemente incluyendo el decorador
@login_required
antes de cada 'vista' de Django:
login required decorator
Django tiene un módulo para registro (Django Logging), basado en el de python
La configuración del registro, se pone el archivo settings.py
, y puede
ser algo así:
LOG_FILE = 'mi_archivo_de.log'
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
'datefmt' : "%d/%b/%Y %H:%M:%S"
},
'simple': {
'format': '%(levelname)s [%(name)s:%(lineno)s] %(message)s'
},
},
'handlers': {
'file': {
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': os.path.join(BASE_DIR, LOG_FILE),
'formatter': 'verbose',
'mode':'w'
},
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'simple'
}
},
'loggers': {
'django': {
'handlers':['file'],
'propagate': True,
'level':'ERROR',
},
'restaurantes': {
'handlers': ['file', 'console'],
'level': 'DEBUG',
},
}
}