django做了登录页面,验证码后台打印出5位,可是页面只显示1位是什么原因?

酷数据 2021-09-11 21:49:02

页面显示只一位:

urls.py页:

from django.contrib import admin
from django.urls import path
from home import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
     path('login/', views.login_view, name='login'),
     path('get_valid_code_img/', views.get_valid_code_img_view),
]
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL,
                          document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL,
                          document_root=settings.MEDIA_ROOT)

view.py页面:

from django.http import HttpResponse
import random
from django.shortcuts import render
from io import BytesIO  # 内存管理
from PIL import Image, ImageDraw, ImageFont


def login_view(request,):
    return render(request, 'login.html')


def get_valid_code_img_view(request):

    def get_random_color():
        return random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)
    img = Image.new("RGB", (250, 40), color=get_random_color())
    draw = ImageDraw.Draw(img)
    did_font = ImageFont.truetype("static/font/did.otf", size=30)
    for i in range(5):
        random_num = str(random.randint(0, 9))
        random_low_alpha = chr(random.randint(95, 122))
        random_upper_alpha = chr(random.randint(65, 90))
        random_char = random.choice([random_num, random_low_alpha, random_upper_alpha])

    draw.text((i*20+20, 5), random_char, get_random_color(), font=did_font)
    f = BytesIO()
    img.save(f, "png")
    data = f.getvalue()
    return HttpResponse(data)
...全文
74 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-Python 发布问题, 以便更快地解决您的疑问

35

社区成员

发帖
与我相关
我的任务
社区管理员
  • community_343
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧