python django验证码

问题遇到的现象和发生背景

img

遇到的现象和发生背景,请写出第一个错误信息

python django框架写的登录 图片验证码 生成图片和随机字母写到图片上 图片放入内存中

用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
url中
    path('image/code/', views_account.image_code),
views中
class LoginFrom(BootStrapForm):

    username = forms.CharField(
        label="用户名",
        widget=forms.TextInput,
        required=True
    )
    password = forms.CharField(
        label="密码",
        widget=forms.PasswordInput(render_value=True),
        required=True
    )
    code = forms.CharField(
        label="验证码",
        widget=forms.TextInput,
        required=True
    )
    def clean_password(self):
        pwd = self.cleaned_data.get("password")
        return md5(pwd)

def login(request):
    """ 登录 """
    image_code(request)
    if request.method == "GET":
        #image_code(request)
        form = LoginFrom()
        return render(request, "login.html", {"form":form})

    form = LoginFrom(data=request.POST)
    if form.is_valid():
        #验证成功,获取到的用户名和密码及验证码
        #验证码效验
        user_input_code = form.cleaned_data.pop('code')
        code = request.session.get('image_code',"")
        if code.upper() != user_input_code.upper():
            form.add_error("code", "验证码错误")
            return render(request, 'login.html', {'form': form})
        #验证通过去数据库效验用户名和密码是否正确
        admin_obj = models.Admin.objects.filter(**form.cleaned_data).first()
        if not admin_obj:
            #如果用户名 密码错误
            form.add_error("username","用户名密码错误")
            return render(request, "login.html", {"form":form})
        #用户名 密码正确
        #网站生成随机字符串;写到用户浏览器的cookie中;在写入到session中
        userinfo = {'id':admin_obj.id,'name':admin_obj.username}
        request.session["info"] = userinfo
        #session可以保存 7天
        request.session.set_expiry(60 * 60 * 24 * 7)
        return redirect("/admin/list")

    return render(request, "login.html", {"form":form})

def logout(request):
    """ 注 销 """
    request.session.clear()
    return redirect("/login/")

def image_code(request):
    print("进入image_code")
    """ 生成图片验证码 """
    #调用pillow函数生成图片
    #1、先导包 from webapp.utils.code import check_code
    #        from io import BytesIO
    img,code_string = check_code()
    #将 code写入到session中,以便于后续进行验证
    request.session['image_code'] = code_string
    #给验证码设置有效时间60S
    request.session.set_expiry(60)
    print(code_string)
    #在内存中创建一个文件seream
    stream = BytesIO()
    #将img写到这个内存文件中png格式
    img.save(stream,'png')
    #     再从内存中           返回这个文件
    return HttpResponse(stream.getvalue())

HTML中
        
"form-group">
"row">
"col-xs-7"> {{ form.code }} "color: red;">{{ form.code.errors.0 }}
"col-xs-5"> "/image/code" style="width: 125px" id="image_code" >
运行结果及详细报错内容

验证码不显示

我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

想正常显示验证码有知道的朋友能指点 指点吗

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”