Django學習筆記—驗證碼
大部分部落格網站是不會設定使用者登入功能的,如果表單上再不新增驗證碼機制,那你就等著spammer瘋狂的攻擊吧。我曾經就吃過大虧:之前的一個網站平均每天幾十條垃圾留言,刪都來不及。後來在網上找到了一個優秀的遮蔽spam的外掛——akismet,使用後果然效果不錯,基本上垃圾資訊都被遮蔽掉了,即在前臺是看不到了,但問題是這些垃圾評論還是在源源不斷地寫入你的資料庫表中,在管理後臺裡還是能看到它們的存在的。故為了眼不見心不煩,一勞永逸,還是決定給網站增加驗證碼機制,雖然以後提交表單繁瑣了點,但網站總算落了個清淨。
使用python或者說django的好處是什麼?就是當你想實現某個功能時候,先去網上搜搜看,很多時候你會發現已經有人解決了這個問題,釋出了相關的庫。你拿來直接使用就OK了。搜尋“django、驗證碼”,django-simple-captcha出現了,看了一下它的介紹,發現真的是一款相當好用的django第三方驗證碼庫,隨即就用在了我的這個部落格網站上。下面把它的用法簡單記錄一下。
一、簡介
- 專案地址:http://code.google.com/p/django-simple-captcha/
- 簡介:是一個第三方django APP,用於為表單新增驗證碼圖片
二、一般的使用方法
- 下載後python setup.py install進行安裝
- 將下載包解壓,將裡面的captcha包複製到專案目錄下,如myblog/captcha
- settings.py裡新增:
1
INSTALLED_APPS(‘captcha’,)
- urls.py裡新增:
1
(r’^captcha
/
’, include(‘captcha.urls’)),
- 執行python manage.py syncdb生成所需資料庫表
- 在需要用到captcha的forms.py檔案裡的合適位置新增下面的程式碼,增加驗證碼欄位:
123
from
captcha.fields
import
CaptchaField
captcha
=
CaptchaField()
- 在處理表單提交的業務邏輯程式碼塊裡新增:
12
if
form.is_valid():
human
=
True
三、與django的comments元件結合使用的方法
如果你的專案裡的評論系統直接使用的django內建的comments庫,則comments庫與此驗證碼庫結合使用的方法如下:
- 執行前面的1至5步
- 在 Python27\Lib\site-packages\django\contrib\comments\forms.py檔案中(windows環境下的路徑),在CommentDetailsForm類裡面新增驗證碼欄位:
123
from
captcha.fields
import
CaptchaField
captcha
=
CaptchaField()
- 在Python27\Lib\site-packages\django\contrib\comments\views\comments.py檔案中,在# Otherwise create the comment這句下面新增:
1
human
=
True
- 修改表單模板:如果評論表單模板直接用的{{form}}則什麼都不用修改;如果是自己定製的表單模板,則可新增如下:
123
<
p
>
<
label
for
=
"id_captcha"
>驗證(必填):</
label
> {{form.captcha}}
</
p
>
這樣就基本能夠使用了,擷取了一張效果圖,大家來看看:
文章來源:http://newliu.com/post/5/
相關文章
- django學習筆記Django筆記
- swoft 學習筆記之驗證器筆記
- validator 驗證框架(學習筆記)框架筆記
- Laravel——驗證碼認證學習記錄Laravel
- angular學習筆記(二十)-表單驗證Angular筆記
- Django Book 學習筆記(上)Django筆記
- Django Book學習筆記(下)Django筆記
- django 驗證碼框架Django框架
- [python]django學習筆記 二PythonDjango筆記
- Django實現驗證碼Django
- Django筆記三十二之session登入驗證操作Django筆記Session
- 數學證明 學習筆記筆記
- 20160322 javaweb 學習筆記--response驗證碼實現JavaWeb筆記
- SpringBoot + Spring Security 學習筆記(三)實現圖片驗證碼認證Spring Boot筆記
- Django學習筆記(12)——分頁功能Django筆記
- Django學習筆記(15)——中介軟體Django筆記
- Django book2 模型 學習筆記Django模型筆記
- KgCaptcha驗證碼實現筆記GCAPT筆記
- Django學習筆記(13)——Django的使用者認證元件,檢視層和QuerySet APIDjango筆記元件API
- Django之圖形驗證碼Django
- Android學習筆記之簡訊驗證碼的獲取和讀取Android筆記
- django book2 表單學習筆記Django筆記
- 【日常筆記】生成驗證碼圖片筆記
- octobercms 外掛學習 驗證碼
- Django筆記四十二之model使用validator驗證器Django筆記
- jQuery 表單驗證 學習手記jQuery
- Django學習筆記《二》圖書管理系統Django筆記
- Django之“學習筆記”網站開發1Django筆記網站
- 學習 Java 之 位元組碼驗證Java
- 強化學習-學習筆記10 | 經驗回放強化學習筆記
- 《Shell指令碼學習指南》學習筆記指令碼筆記
- 表單驗證——筆記筆記
- (Django)18.3建立網頁:學習筆記主頁Django網頁筆記
- 關於django reset_framework學習之路的筆記DjangoFramework筆記
- Django學習筆記—Comments庫的使用方法小記Django筆記
- SpringBoot + Spring Security 學習筆記(五)實現簡訊驗證碼+登入功能Spring Boot筆記
- Retrofit原始碼學習筆記原始碼筆記
- Shell指令碼學習筆記指令碼筆記