欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python生成驗證碼實例

 更新時間:2014年08月21日 11:53:46   投稿:shichen2014  
這篇文章主要介紹了Python生成驗證碼的方法,具有很好的實用價值,代碼結(jié)構(gòu)清晰易懂,需要的朋友可以參考下

本文實例展示了Python生成驗證碼的方法,具有很好的實用價值。分享給大家供大家參考。具體實現(xiàn)方法如下:

前臺頁面代碼如下:

<div>
 <img id="authcode_img" alt="驗證碼" src="/registration/makeimage/{{time}}"/>  
 <!-- time 任意隨機數(shù)(時間戳),防止頁面緩存 導致驗證碼不能更新-->
 <a href="javascript:refreshCode();" rel="external nofollow" style="color:blue;">看不清換一張</a>
</div>

<script>
 function refreshCode() {
   $('authcode_img').src = "/registration/makeimage/" + Math.random();
 }
</script>

后臺程序如下:

import StringIO
import Image, ImageDraw, ImageFont, random  #相應的模塊需要安裝
from xxx.settings import authcode_font #請確保改字體存在

def make_image(request):
  mp = hashlib.md5()
  mp.update(str(datetime.datetime.now())+str(random.random()))  
  mp_src = mp.hexdigest()
  rand_str = mp_src[0:6]
  font = ImageFont.truetype(authcode_font, 25)
  width = 75
  height = 30
  im = Image.new('RGB',(width,height),'#%s'%mp_src[-7:-1])
  draw = ImageDraw.Draw(im)
  draw.line((random.randint(0,width),random.randint(0,height),random.randint(0,width),random.randint(0,height)))
  draw.line((random.randint(0,width),random.randint(0,height),random.randint(0,width),random.randint(0,height)))
  draw.line((random.randint(0,width),random.randint(0,height),random.randint(0,width),random.randint(0,height)))
  draw.line((random.randint(0,width),random.randint(0,height),random.randint(0,width),random.randint(0,height)))
  draw.line((random.randint(0,width),random.randint(0,height),random.randint(0,width),random.randint(0,height)))
  draw.text((5,2), rand_str, font=font)  
  del draw  
  buffer = StringIO.StringIO()
  im.save(buffer,'jpeg')
  httpResponse = HttpResponse(content=buffer.getvalue(),mimetype="image/jpeg")
  request.session['auth_code'] = rand_str
  return httpResponse

程序效果如下:

相關文章

  • python 從遠程服務器下載日志文件的程序

    python 從遠程服務器下載日志文件的程序

    本文提供了一種方法,該程序可實現(xiàn)抓取服務器的日志文件到本地,根據(jù)該程序可自行擴展對日志文件的自動化分析。常用于數(shù)據(jù)挖掘、生產(chǎn)維護等
    2013-02-02
  • Flask運用Xterm實現(xiàn)交互終端的示例詳解

    Flask運用Xterm實現(xiàn)交互終端的示例詳解

    Xterm是一個基于X Window System的終端仿真器(Terminal Emulator),Xterm最初由MIT開發(fā),它允許用戶在X Window環(huán)境下運行文本終端程序,本文給大家介紹了Flask運用Xterm實現(xiàn)交互終端的示例詳解,文中有詳細的代碼講解,需要的朋友可以參考下
    2023-11-11
  • 使用python解析MDX詞典數(shù)據(jù)并保存為Excel文件

    使用python解析MDX詞典數(shù)據(jù)并保存為Excel文件

    MDX(Mobile Dictionary eXchange)是一種常見的詞典文件格式,通常用于在移動設備和電腦之間共享辭典數(shù)據(jù),本文深入探討了從MDX詞典數(shù)據(jù)提取、處理到最終保存為Excel文件的全過程,需要的朋友可以參考下
    2023-12-12
  • Python將腳本程序轉(zhuǎn)變?yōu)榭蓤?zhí)行程序的實現(xiàn)

    Python將腳本程序轉(zhuǎn)變?yōu)榭蓤?zhí)行程序的實現(xiàn)

    本文主要介紹了Python將腳本程序轉(zhuǎn)變?yōu)榭蓤?zhí)行程序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 在python3.5中使用OpenCV的實例講解

    在python3.5中使用OpenCV的實例講解

    下面小編就為大家分享一篇在python3.5中使用OpenCV的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python中turtle庫常用代碼匯總

    Python中turtle庫常用代碼匯總

    Turtle庫是Python語言中一個很流行的繪制圖像的函數(shù)庫,下面這篇文章主要給大家介紹了關于Python中turtle庫常用代碼的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Python的迭代器和生成器

    Python的迭代器和生成器

    由于在看一個python項目,遇到了迭代器和生成器的使用,正好之前自己也沒有細看這部分,今天就稍微梳理一下吧!
    2015-07-07
  • Python數(shù)據(jù)結(jié)構(gòu)與算法之完全樹與最小堆實例

    Python數(shù)據(jù)結(jié)構(gòu)與算法之完全樹與最小堆實例

    這篇文章主要介紹了Python數(shù)據(jù)結(jié)構(gòu)與算法之完全樹與最小堆,結(jié)合實例形式分析了Python完全樹定義及堆排序功能實現(xiàn)相關操作技巧,需要的朋友可以參考下
    2017-12-12
  • python中二維陣列的變換實例

    python中二維陣列的變換實例

    這篇文章主要介紹了python中二維陣列的變換實例,通過對比兩種不同的方法分析了二維陣列變換的實現(xiàn)方法,需要的朋友可以參考下
    2014-10-10
  • Python中列表遍歷使用range和enumerate的區(qū)別講解

    Python中列表遍歷使用range和enumerate的區(qū)別講解

    這篇文章主要介紹了Python中列表遍歷使用range和enumerate的區(qū)別,在Python編程語言中,遍歷list有range和enumerate方法,本文結(jié)合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12

最新評論