Django中的驗證碼

1赃阀、View

def verification_code(request):
    bgcolor = (random.randrange(20, 100), random.randrange(20, 100), 255)
    width = 100
    height = 25
    # 創(chuàng)建畫面對象
    # im = Image.new('RGB', (width, height), bgcolor)
    im = Image.new('RGB', (width, height), (255, 255, 255))
    # 創(chuàng)建畫筆對象
    draw = ImageDraw.Draw(im)
    # 調(diào)用畫筆的point()函數(shù)繪制噪點
    for i in range(0, 100):
        xy = (random.randrange(0, width), random.randrange(0, height))
        fill = (random.randrange(0, 255), 255, random.randrange(0, 255))
        draw.point(xy, fill=fill)
    # 定義驗證碼的備選值
    str1 = 'ABCD123EFGHIJK456LMNOPQRS789TUVWXYZ0'
    # 隨機選取4個值作為驗證碼
    rand_str = ''
    for i in range(0, 4):
        rand_str += str1[random.randrange(0, len(str1))]
    # 構(gòu)造字體對象
    font = ImageFont.truetype('simsun.ttc', 23)
    # 構(gòu)造字體顏色
    fontcolor = (255, random.randrange(0, 255), random.randrange(0, 255))
    # 繪制4個字
    draw.text((5, 2), rand_str[0], font=font, fill=fontcolor)
    draw.text((25, 2), rand_str[1], font=font, fill=fontcolor)
    draw.text((50, 2), rand_str[2], font=font, fill=fontcolor)
    draw.text((75, 2), rand_str[3], font=font, fill=fontcolor)
    # 釋放畫筆
    del draw
    # 創(chuàng)建內(nèi)存讀寫的對象
    buf = BytesIO()
    # 將圖片保存在內(nèi)存中第练,文件類型為png
    im.save(buf, 'png')

    # 放入session中
    request.session['verificationcode'] = rand_str
    request.session.set_expiry(0)

    return HttpResponse(buf.getvalue(), 'image/png')

2贮预、Template

<td>驗證碼</td>
<td><input type="text" name="verificationcode"/></td> 
<td><img src="/user/verification_code" alt="驗證碼" id="verificationcode"/></td>

<script>
    window.onload = function(){
        src = "/user/verification_code?n="
        code = document.getElementById("verificationcode")
        //為驗證碼添加click事件
        code.onclick = function(){
            code.src = src + new Date().getTime()
        }
    }
</script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鉴分,一起剝皮案震驚了整個濱河市糯笙,隨后出現(xiàn)的幾起案子妹田,更是在濱河造成了極大的恐慌唬党,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鬼佣,死亡現(xiàn)場離奇詭異驶拱,居然都是意外死亡,警方通過查閱死者的電腦和手機晶衷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進店門蓝纲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人晌纫,你說我怎么就攤上這事税迷。” “怎么了锹漱?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵箭养,是天一觀的道長。 經(jīng)常有香客問我凌蔬,道長露懒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任砂心,我火速辦了婚禮懈词,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘辩诞。我一直安慰自己坎弯,他們只是感情好,可當我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著抠忘,像睡著了一般撩炊。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上崎脉,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天拧咳,我揣著相機與錄音,去河邊找鬼囚灼。 笑死骆膝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的灶体。 我是一名探鬼主播阅签,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蝎抽!你這毒婦竟也來了政钟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤樟结,失蹤者是張志新(化名)和其女友劉穎养交,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體狭吼,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡层坠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年殖妇,在試婚紗的時候發(fā)現(xiàn)自己被綠了刁笙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡谦趣,死狀恐怖疲吸,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情前鹅,我是刑警寧澤摘悴,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站舰绘,受9級特大地震影響蹂喻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜捂寿,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一口四、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秦陋,春花似錦蔓彩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽旷赖。三九已至,卻和暖如春更卒,著一層夾襖步出監(jiān)牢的瞬間等孵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工蹂空, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留流济,地道東北人。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓腌闯,卻偏偏與公主長得像绳瘟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子姿骏,可洞房花燭夜當晚...
    茶點故事閱讀 42,786評論 2 345

推薦閱讀更多精彩內(nèi)容