• Django之验证码 + session 认证


    验证码 + session认证

    目录结构

    .
    └── project
        ├── app01
        │   ├── admin.py
        │   ├── apps.py
        │   ├── __init__.py
        │   ├── migrations
        │   │   └── __init__.py
        │   ├── models.py
        │   ├── tests.py
        │   └── views.py
        ├── backend
        │   ├── check_code.py
        │   └── __init__.py
        ├── db.sqlite3
        ├── manage.py
        ├── Monaco.ttf
        ├── project
        │   ├── __init__.py
        │   ├── settings.py
        │   ├── urls.py
        │   └── wsgi.py
        ├── static
        │   └── jquery
        │       └── jquery-1.12.4.js
        └── templates
            └── login.html
    

    相关文件

    代码

    • login.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <form action="/login/" method="POST">
            <input type="text" name="username" />
            <input type="text" name="pwd" />
            <input type="text" name="check_code" />
            <img src="/check_code/" onclick="ChangeCode(this);">
            <input type="submit" />
        </form>
        <script>
            function ChangeCode(ths){
                ths.src = ths.src + '?';
            }
        </script>
    </body>
    </html>
    
    • views.py
    from django.shortcuts import render
    from django.shortcuts import HttpResponse
    
    import os
    import json
    import io
    from backend import check_code as CheckCode
    # Create your views here.
    
    
    def check_code(request):
        """
        生成图片,将图片上的文字保存到session中
        将图片内容返回给用户
        :param request:
        :return:
        """
    
        stream = io.BytesIO()
    
        # img图片对象,code在图像中写的内容
        img, code = CheckCode.create_validate_code()
        img.save(stream, "png")
    
        request.session["CheckCode"] = code     # 放入到session中
        return HttpResponse(stream.getvalue())
    
    
    def login(request):
    
        if request.method == "POST":
            input_code = request.POST.get("check_code")
            print(input_code.upper(), request.session['CheckCode'].upper())
    
        return render(request, "login.html")
    
  • 相关阅读:
    Skimage=scikit-image SciKit 包的模块(转载)
    python day12
    python day11
    python day10
    python day9
    python day8
    python day7
    python day6
    python 第五天
    python 第四天
  • 原文地址:https://www.cnblogs.com/CongZhang/p/5906267.html
Copyright © 2020-2023  润新知