• Django之验证码 + 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(this){
                  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")
  • 相关阅读:
    1592:【例 1】国王
    状态压缩类动态规划笔记
    1300:鸡蛋的硬度
    1263:【例9.7】友好城市
    第四部分-并发编程案例分析4:高性能数据库连接池HikariCP
    容器基础3:容器镜像
    第四部分-并发编程案例分析3:高性能队列Disruptor
    容器基础2:隔离与限制
    第四部分-并发编程案例分析1:限流Guava RateLimiter
    容器基础1:进程
  • 原文地址:https://www.cnblogs.com/slsectyoufromwrold/p/10773726.html
Copyright © 2020-2023  润新知