菜鸟学Python之django-simple-captcha使用


声明:本文转载自https://my.oschina.net/hellotest/blog/1623597,转载目的在于传递更多信息,仅供学习交流之用。如有侵权行为,请联系我,我会及时删除。

环境的准备

前端框架semantic ui
Python 3.6.4

pip install django   pip install django-simple-captcha 

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

目标展示

输入图片说明

配置settings.py

# 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   

配置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()  

配置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())  

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> 

在模板中加入js代码

<script>   $('#js-captcha-refresh').click(function(){ {#    $form = $(this).parents('form');#}      $.getJSON($(this).data('url'), {}, function(json) {         // This should update your captcha image src and captcha hidden input      });      return false; });   </script> 

这种刷新验证码的方式是点击按钮,还有ajax请求的刷新方式,大家有兴趣可以根据官方文档研究一下

本文发表于2018年02月25日 10:31
(c)注:本文转载自https://my.oschina.net/hellotest/blog/1623597,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如有侵权行为,请联系我们,我们会及时删除.

阅读 3420 讨论 0 喜欢 0

抢先体验

扫码体验
趣味小程序
文字表情生成器

闪念胶囊

你要过得好哇,这样我才能恨你啊,你要是过得不好,我都不知道该恨你还是拥抱你啊。

直抵黄龙府,与诸君痛饮尔。

那时陪伴我的人啊,你们如今在何方。

不出意外的话,我们再也不会见了,祝你前程似锦。

这世界真好,吃野东西也要留出这条命来看看

快捷链接
网站地图
提交友链
Copyright © 2016 - 2021 Cion.
All Rights Reserved.
京ICP备2021004668号-1