хочу улучшить мой взгляд - PullRequest
0 голосов
/ 15 декабря 2011

У меня такой взгляд. Это сработало. Я новичок в Джанго. Можете ли вы помочь мне улучшить этот код? спасибо

def getAPI(request):
    username = request.GET.get('username')
    password = request.GET.get('password')
    #TODO Match user and password
    if username:
        user = User.objects.get(username__exact=username)
        is_exist = user.check_password(password)
        if is_exist == True:
            api_key = ApiKey.objects.get(id=user.id)
        else:
            error_message = 'username or password is invalid.'
    return render_to_response('details.html',locals(),
                        context_instance=RequestContext(request)
                        )

если имя пользователя и пароль не существует, тогда я хочу напечатать error message. В противном случае я хочу напечатать ApiKey. спасибо

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Вы имеете в виду «печать» (в этом случае просто используйте функцию печати Python) или вы хотите вернуть его в ответе?Если последнее, прочитайте о шаблонах django и передаче переменных в render_to_response.

Кроме того, вставлять пароль в качестве переменной GET - плохая идея, поскольку она будет видна в URL:

http://example.com/whatever?username=me&password=s3cr3t

Пользователь /Информация о пароле обычно отправляется через форму POST.Но, может быть, вы не так беспокоитесь о безопасности.

0 голосов
/ 15 декабря 2011

Вот базовый шаблон для аутентификации пользователя:

from django.contrib.auth import authenticate

def my_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active:
            # User is authenticated - return api key
        else:
            # Return a 'disabled account' error message
    else:
        # Return an 'invalid login' error message.
...