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/
相關文章
- swoft 學習筆記之驗證器筆記
- Laravel——驗證碼認證學習記錄Laravel
- SpringBoot + Spring Security 學習筆記(三)實現圖片驗證碼認證Spring Boot筆記
- django 驗證碼框架Django框架
- Django筆記三十二之session登入驗證操作Django筆記Session
- Django實現驗證碼Django
- KgCaptcha驗證碼實現筆記GCAPT筆記
- Django學習筆記(15)——中介軟體Django筆記
- Django學習筆記(12)——分頁功能Django筆記
- 數學證明 學習筆記筆記
- Django筆記四十二之model使用validator驗證器Django筆記
- Django學習筆記(13)——Django的使用者認證元件,檢視層和QuerySet APIDjango筆記元件API
- Django之圖形驗證碼Django
- SpringBoot + Spring Security 學習筆記(五)實現簡訊驗證碼+登入功能Spring Boot筆記
- 【日常筆記】生成驗證碼圖片筆記
- octobercms 外掛學習 驗證碼
- Java SpringBoot 如何使用 IdentityServer4 作為驗證學習筆記JavaSpring BootIDEServer筆記
- Django學習筆記《二》圖書管理系統Django筆記
- (Django)18.3建立網頁:學習筆記主頁Django網頁筆記
- jQuery 表單驗證 學習手記jQuery
- 強化學習-學習筆記10 | 經驗回放強化學習筆記
- 學習 Java 之 位元組碼驗證Java
- 關於django reset_framework學習之路的筆記DjangoFramework筆記
- Python學習筆記—程式碼Python筆記
- Retrofit原始碼學習筆記原始碼筆記
- 【學習筆記】初次學習斜率最佳化的程式碼及筆記筆記
- Vue筆記之props驗證Vue筆記
- 工作學習筆記(八)去重校驗筆記
- Mysql學習筆記-臨鍵鎖實驗MySql筆記
- substrate學習筆記1:Substrate初體驗筆記
- jQuery原始碼學習筆記一jQuery原始碼筆記
- vue原始碼學習筆記1Vue原始碼筆記
- shell指令碼學習筆記-1指令碼筆記
- 學習筆記 sync/RWMutex原始碼筆記Mutex原始碼
- Django學習筆記(20)——BBS+Blog專案開發(4)Django如何使用BootstrapDjango筆記boot
- SpringBoot + Spring Security 學習筆記(二)安全認證流程原始碼詳解Spring Boot筆記原始碼
- numpy的學習筆記\pandas學習筆記筆記
- C#滑動拼圖驗證碼實現筆記C#筆記
- Django模型驗證器詳解和原始碼分析Django模型原始碼