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

python如何生成網(wǎng)頁(yè)驗(yàn)證碼

 更新時(shí)間:2018年07月28日 10:22:59   作者:WangF0  
這篇文章主要為大家詳細(xì)介紹了python如何生成網(wǎng)頁(yè)驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了python生成網(wǎng)頁(yè)驗(yàn)證碼的具體代碼,供大家參考,具體內(nèi)容如下

驗(yàn)證碼為pil模塊生成,可直接應(yīng)用于django框架當(dāng)中。

首先需要安裝Pillow模塊 我們這里使用的版本為3.4.1
終端中直接輸入指令 pip install Pillow==3.4.1

from PIL import Image, ImageDraw, ImageFont
from django.utils.six import BytesIO

def verify_code(request):
  #引入隨機(jī)函數(shù)模塊
  import random
  #定義變量,用于畫面的背景色、寬、高
  bgcolor = (random.randrange(20, 100), random.randrange(
    20, 100), 255)
  width = 100
  height = 25
  #創(chuàng)建畫面對(duì)象
  im = Image.new('RGB', (width, height), bgcolor)
  #創(chuàng)建畫筆對(duì)象
  draw = ImageDraw.Draw(im)
  #調(diào)用畫筆的point()函數(shù)繪制噪點(diǎn)
  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)
  #定義驗(yàn)證碼的備選值
  str1 = 'ABCD123EFGHIJK456LMNOPQRS789TUVWXYZ0'
  #隨機(jī)選取4個(gè)值作為驗(yàn)證碼
  rand_str = ''
  for i in range(0, 4):
    rand_str += str1[random.randrange(0, len(str1))]
  #構(gòu)造字體對(duì)象,ubuntu的字體路徑為“/usr/share/fonts/truetype/freefont”
  font = ImageFont.truetype('FreeMono.ttf', 23)
  #構(gòu)造字體顏色
  fontcolor = (255, random.randrange(0, 255), random.randrange(0, 255))
  #繪制4個(gè)字
  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
  #存入session,用于做進(jìn)一步驗(yàn)證
  request.session['verifycode'] = rand_str
  #內(nèi)存文件操作
  buf = BytesIO()
  #將圖片保存在內(nèi)存中,文件類型為png
  im.save(buf, 'png')
  #將內(nèi)存中的圖片數(shù)據(jù)返回給客戶端,MIME類型為圖片png
  return HttpResponse(buf.getvalue(), 'image/png'

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python之sklearn數(shù)據(jù)預(yù)處理中fit(),transform()與fit_transform()的區(qū)別

    Python之sklearn數(shù)據(jù)預(yù)處理中fit(),transform()與fit_transform()的區(qū)別

    這篇文章主要介紹了Python之sklearn數(shù)據(jù)預(yù)處理中fit(),transform()與fit_transform()的區(qū)別及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Pycharm編輯器功能之代碼折疊效果的實(shí)現(xiàn)代碼

    Pycharm編輯器功能之代碼折疊效果的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Pycharm編輯器功能之代碼折疊效果的實(shí)現(xiàn)代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 詳解基于Scrapy的IP代理池搭建

    詳解基于Scrapy的IP代理池搭建

    這篇文章主要介紹了詳解基于Scrapy的IP代理池搭建,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • 使用 Python 和 Selenium 解決 Cloudflare 驗(yàn)證碼的問題

    使用 Python 和 Selenium 解決 Cloudflare&

    Cloudflare 驗(yàn)證碼是一種用于區(qū)分人類用戶和自動(dòng)化機(jī)器人的功能,它是 Cloudflare 安全服務(wù)的重要組成部分,旨在防御網(wǎng)站免受自動(dòng)化攻擊和濫用,這篇文章主要介紹了使用 Python 和 Selenium 解決 Cloudflare 驗(yàn)證碼,需要的朋友可以參考下
    2024-06-06
  • Python生成隨機(jī)數(shù)的方法

    Python生成隨機(jī)數(shù)的方法

    這篇文章主要介紹了Python生成隨機(jī)數(shù)的方法,有需要的朋友可以參考一下
    2014-01-01
  • Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法

    Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法

    今天小編就為大家分享一篇Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python判斷列表的連續(xù)數(shù)字范圍并分塊的方法

    python判斷列表的連續(xù)數(shù)字范圍并分塊的方法

    今天小編就為大家分享一篇python判斷列表的連續(xù)數(shù)字范圍并分塊的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python多線程模塊Threading用法示例小結(jié)

    Python多線程模塊Threading用法示例小結(jié)

    這篇文章主要介紹了Python多線程模塊Threading用法,結(jié)合實(shí)例形式分析了Python多線程模塊Threading相關(guān)概念、原理、進(jìn)程與線程的區(qū)別及使用技巧,需要的朋友可以參考下
    2019-11-11
  • 用Python寫漏洞驗(yàn)證腳本的代碼

    用Python寫漏洞驗(yàn)證腳本的代碼

    這篇文章主要介紹了用Python寫漏洞驗(yàn)證腳本,本文給大家分享完整實(shí)例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • 簡(jiǎn)單介紹Python中的decode()方法的使用

    簡(jiǎn)單介紹Python中的decode()方法的使用

    這篇文章主要介紹了簡(jiǎn)單介紹Python中的decode()方法的使用,是Python入門學(xué)習(xí)當(dāng)中必須掌握的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05

最新評(píng)論