Это мои просмотры
из django .http import HttpResponse
from django .http.response import HttpResponseBadRequest
из django .shortcuts import рендеринг
из django .views import View
noinspection PyUnresolvedReferences
из django_ redis import get_ redis_ connection
из libs.captcha.captcha import captcha
Создайте здесь свои представления.
class Registerview (View):
def get (self, request):
return render (request, "register . html ""
class ImageCodeView (View):
if __ name__ == '__ main__':
def get (self, request):
1 получить параметры, переданные из внешнего интерфейса
uuid = request.GET.get ('uuid')
2. Оценить, получен ли UUID
если uuid равно None:
Вернуть httpresponsebadrequest ('ошибка параметра запроса')
3. Сгенерировать код проверки изображения (двоичное изображение и изображение c ontent), вызвав captcha
text, image = captcha.generate_ captcha ()
4. Сохраните содержимое изображения в redis, UUID в качестве ключа, содержимое изображения в качестве значения, и нам также необходимо установить ограничение по времени
redis_ conn = get_ redis_ connection ('default')
Установите параметр key, value, expiration seconds key на двоичное содержимое изображения, полученного с помощью UUID. Значение captcha
redis_ conn.setex ('img:% s'% uuid, 300, text)
5. Вернуться к бинарному изображению. Вам необходимо сообщить браузеру тип возвращаемого изображения
return HttpResponse (image, content_ type = 'image / jpeg')
Это конфигурация redis в моих настройках: https://i.stack.imgur.com/YXaRd.png
Сейчас я набираю на фоновой странице http://127.0.0.1: 8000 / Imagecode /? UUID = 123, go в командную строку, чтобы получить redis cli, а ключи * не могут найти UUID. Что случилось? Я новичок. Надеюсь, вы дадите мне знать, спасибо