zoukankan      html  css  js  c++  java
  • Django Simple Captcha的使用

    Django Simple Captcha的使用

    1、下载Django Simple Captcha

    django-simple-captcha官方文档地址
    http://django-simple-captcha.readthedocs.io/en/latest/

    2、配置settings

    # django_simple_captcha 验证码配置其他配置项查看文档
    # 默认格式
    CAPTCHA_OUTPUT_FORMAT = '%(image)s %(text_field)s %(hidden_field)s '
    CAPTCHA_NOISE_FUNCTIONS = ('captcha.helpers.noise_null', # 没有样式
        # 'captcha.helpers.noise_arcs', # 线
        # 'captcha.helpers.noise_dots', # 点
    )
    # 图片中的文字为随机英文字母,如 mdsh
    # CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.random_char_challenge' 
     # 图片中的文字为数字表达式,如2+2=
    CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.math_challenge'   
    # 超时(minutes)
    CAPTCHA_TIMEOUT = 1 
    # 验证码宽度和高度
    # CAPTCHA_IMAGE_SIZE = (100, 25)

    3、配置form.py

    class LoginForms(forms.Form):
        email = forms.CharField(label="邮箱", max_length=128)
        password = forms.CharField(label="密码", max_length=128, widget=forms.PasswordInput)
        captcha = CaptchaField()

    4、配置views.py

    def login(request):
        pass
       # 图片验证码
        # hashkey验证码生成的秘钥,image_url验证码的图片地址
        hashkey = CaptchaStore.generate_key()
        image_url = captcha_image_url(hashkey)
        login_form = forms.LoginForms()
        # Python内置了一个locals()函数,它返回当前所有的本地变量字典
        return render(request, 'user/login.html', locals())

    5、html 模板中显示验证码

     <div class="field">
              <div class="ui left img input">
                <button  id='js-captcha-refresh'  class='ui icon button ' ><i class="refresh icon green"></i></button>
                  <img src="{{ image_url}}" alt="captcha" class="captcha">
                  <input autocomplete="off" id="id_captcha_1" name="captcha_1" type="text" placeholder="输入验证码">
                  <input id="id_reg_captcha_0" name="captcha_0" type="hidden" value="{{ hashkey }}">
              </div>
            </div>

    6、ajax刷新验证码

    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
    <script>
        $('.captcha').click(function () {
            $.getJSON("/captcha/refresh/", function (result) {
                $('.captcha').attr('src', result['image_url']);
                $('#id_captcha_0').val(result['key'])
            });
    
        });
    </script>
  • 相关阅读:
    举个手问个问题;
    c++字符串详解(转)
    Glide请求图片能携带Cookie的哟!
    Glide加载异常调试
    Notification中使用Glide
    manifest中读取<meta-data>
    Glide 魔法般的自定义扩展
    服务端报错死循环,无法输出错误页面问题
    android必须要进行为不同分辨率设备切图
    TextView无法通过setText设值
  • 原文地址:https://www.cnblogs.com/wangyueping/p/11340767.html
Copyright © 2011-2022 走看看