authenticate() y login() estan definidos dentro de django 
"from django.contrib.auth import login, logout, authenticate"
authenticate() si manda un error si las credenciales son malas. Por eso esta dentro de un try y si saca el error dice 'Wrong username or password

aca esta la diferencia entre las dos funciones:
https://docs.djangoproject.com/en/dev/topics/auth/default/