python編寫四位數驗證碼

def verifycode(request):#引入繪圖模塊from PIL import Image, ImageDraw, ImageFont#引入隨機函數模塊import random#定義變量,用于畫面的背景色、寬、高bgcolor = (random.randrange(20, 100), random.randrange(20, 100), random.randrange(20, 100))width = 100height = 50#創建畫面對象im = Image.new('RGB', (width, height), bgcolor)#創建畫筆對象draw = ImageDraw.Draw(im)#調用畫筆的point()函數繪制噪點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)#定義驗證碼的備選值str = '1234567890QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm'#隨機選取4個值作為驗證碼rand_str = ''for i in range(0, 4):rand_str += str[random.randrange(0, len(str))]#構造字體對象font = ImageFont.truetype(r'C:\Windows\Fonts\AdobeArabic-Bold.otf', 40)#構造字體顏色fontcolor1 = (255, random.randrange(0, 255), random.randrange(0, 255))fontcolor2 = (255, random.randrange(0, 255), random.randrange(0, 255))fontcolor3 = (255, random.randrange(0, 255), random.randrange(0, 255))fontcolor4 = (255, random.randrange(0, 255), random.randrange(0, 255))#繪制4個字draw.text((5, 2), rand_str[0], font=font, fill=fontcolor1)draw.text((25, 2), rand_str[1], font=font, fill=fontcolor2)draw.text((50, 2), rand_str[2], font=font, fill=fontcolor3)draw.text((75, 2), rand_str[3], font=font, fill=fontcolor4)#釋放畫筆del draw#存入session,用于做進一步驗證# request.session['verifycode'] = rand_str#內存文件操作import iobuf = io.BytesIO()#將圖片保存在內存中,文件類型為pngim.save(buf, 'png')#將內存中的圖片數據返回給客戶端,MIME類型為圖片pngreturn HttpResponse(buf.getvalue(), 'image/png')
  • ?圖為示例:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457171.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457171.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457171.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php 計算數據偏離度,關于偏離度的測算方法

2015年6月技術總結——關于偏離度的測算方法研究院公用事業部 路璐引言《原理》中說“偏離度是指每一種償債來源與財富創造能力的距離,所體現的是償債來源對債務安全的保障程度,唯有通過揭示償債來源與財富創造能力偏離度才能真正區別每一種償債來源的風…

Django中celery配置總結

情景: 用戶發起request,并等待response返回。在本些views中,可能需要執行一段耗時的程序,那么用戶就會等待很長時間, 造成不好的用戶體驗,比如發送郵件、手機驗證碼等。 使用celery后,情況就不…

AngularJs ng-repeat限制循環次數

重復數組&#xff1a;<ul ng-initname[1,2,3,3]><li ng-repeat"name in name track by $index">{{name}}</li> </ul> 對象&#xff1a; <ul ng-initobj{ a:"aaa", b:"bbb", c:"ccc" }><li ng-repeat…

qml demo分析(customgeometry-貝塞爾曲線)

一、效果展示 本篇文章還是帶來一個簡單的qt示例分析&#xff0c;且看圖1效果。 圖1 貝塞爾曲線 二、源碼分析 該示例代碼所在目錄quick\scenegraph\customgeometry&#xff0c;感興趣的同學可以自己去找&#xff0c;這篇文章我還是主要講解源碼&#xff0c;不涉及其他方面。 廢…

php 打包上傳的文件,PHP單文件上傳原理及上傳函數的打包

PHP單文件上傳原理及上傳函數的封裝服務器(臨時文件)——>指定目錄,當文件進入服務器時它就是臨時文件了,這時操作中要用臨時文件的名稱tmp_name。//在客戶端設置上傳文件的限制(文件類型和大小)是不安全的&#xff0c;因為客戶能通過源代碼修改限制&#xff0c;所以在服務端…

celery AttributeError: 'str' object has no attribute 'items'

AttributeError: str object has no attribute items python manage.py celery worker --loglevelinfo 查了好久發現原來是因為以前下的redis版本過高&#xff08; 3.0.1 &#xff09;&#xff0c;重裝redis pip install redis2.10.6

equals和==的區別(轉)

基本數據類型&#xff0c;也稱原始數據類型。byte,short,char,int,long,float,double,boolean&#xff0c;他們之間的比較&#xff0c;應用雙等號&#xff08;&#xff09;,比較的是他們的值。 復合數據類型(類) 當他們用&#xff08;&#xff09;進行比較的時候&#xff0c;…

Python 中的range,以及numpy包中的arange函數

range函數函數說明&#xff1a; range(start, stop[, step]) -> range object&#xff0c;根據start與stop指定的范圍以及step設定的步長&#xff0c;生成一個序列。  參數含義&#xff1a;start:計數從start開始。默認是從0開始。例如range&#xff08;5&#xff09;等價…

php角色權限安全,php – 安全的chmod權限?

新創建的文件和目錄的默認權限由umask環境變量設置.文件的所有者和root可以更改權限.如果您不需要在應用程序中使用chmod,請將其保留在禁用列表中.你應該看看安全性的方式是&#xff1a;現在比我更聰明的人讓chmod成為我應用程序中更安全的部分之一.因此,我將花費我的時間使其他…

namespace! 報錯

在工程文件中url 定義namespace需要 from django.contrib import admin from django.urls import path,include from django.conf.urls import url urlpatterns [path(admin/, admin.site.urls),url(r^liu/,include(myApp.urls,namespaceapp)), ] 在myApp 的urls中 加這句 a…

test.php.bak,MongoDB熱備份工具:解決官方版備份缺陷

賀春旸&#xff0c;凡普金科DBA團隊負責人&#xff0c;《MySQL管理之道&#xff1a;性能調優、高可用與監控》第一、二版作者&#xff0c;曾任職于中國移動飛信、安卓機鋒網。致力于MariaDB、MongoDB等開源技術的研究&#xff0c;主要負責數據庫性能調優、監控和架構設計。工具…

zookeeper工作原理、安裝配置、工具命令簡介

1 Zookeeper簡介Zookeeper 是分布式服務框架&#xff0c;主要是用來解決分布式應用中經常遇到的一些數據管理問題&#xff0c;如&#xff1a;統一命名服務、狀態同步服務、集群管理、分布式應用配置項的管理等等。 ZooKeeper是一個分布式的&#xff0c;開放源碼的分布式應用程序…

流式大數據處理的三種框架:Storm,Spark和Samza

許多分布式計算系統都可以實時或接近實時地處理大數據流。本文將對三種Apache框架分別進行簡單介紹&#xff0c;然后嘗試快速、高度概述其異同。 Apache Storm 在Storm中&#xff0c;先要設計一個用于實時計算的圖狀結構&#xff0c;我們稱之為拓撲&#xff08;topology&#x…

models.ForeignKey( ,on_delete=models.CASCADE)? ? # 關聯外鍵

# 關聯外鍵 sgrade models.ForeignKey("Grades",on_deletemodels.CASCADE) 版本跟新后忘記加on_deletemodels.CASCADE 報錯困擾了很久 多讀報錯信息 from django.db import models# Create your models here. class Grades(models.Model):gname models.Cha…

java 產生無重復的隨機數,Java創建無重復的隨機數

小編典典最簡單的方法是創建一個可能數字的列表(1..20或任何數字)&#xff0c;然后用對其進行混洗Collections.shuffle。然后&#xff0c;只需考慮你想要的許多元素。如果你的范圍最終等于你需要的元素數量(例如&#xff0c;用于洗牌的卡片)&#xff0c;則這非常好。如果你想要…

linux_bash_shell_cheat_sheet(自譯)

【說明】 發現錯誤或不足請務必聯系我&#xff01;&#xff01;&#xff01; linux_bash_shell_cheat_sheet.pdf &#xff08;英文原本以及譯本下載&#xff0c;鏈接失效請私信或郵箱聯系&#xff09; 轉載于:https://www.cnblogs.com/15ho/p/5947534.html

Day04-循環和列表

循環和列表 一、循環(***) 1.1 概念 廣義&#xff1a;一個周期現象或者重復出現的情況&#xff0c;這種狀態被稱為循環 狹義&#xff1a;在滿足條件的情況下&#xff0c;反復執行某一段代碼&#xff0c;在編程語言中出現的這種現象被稱為循環。被反復執行的這段代碼被稱為循環…

熱血街頭Java,下載_我愛法語 V3.01 多國語言版_6z6z下載站

我愛法語是一款功能強大的法語電子詞典工具。融合了法漢&#xff0c;漢法&#xff0c;法法&#xff0c;英法&#xff0c;法英&#xff0c;英漢&#xff0c;法意等各類詞庫。該工具使用靈活&#xff0c;操作簡單&#xff0c;充分吸收了法漢、漢法、法法、英法、法英、英漢、法意…

【demo練習二】:WPF依賴屬性的練習

2016-10-11 依賴屬性demo小樣&#xff1a; 要求&#xff1a;在窗口中點擊按鈕&#xff0c;利用設置“依賴屬性”把Label和TextBox控件里的屬性值進行改變。 MainWindow.xaml代碼&#xff1a; <Window x:Class"依賴屬性1.MainWindow" xmlns"http://schemas.m…

BZOJ 1087 [SCOI2005]互不侵犯King ——狀壓DP

【題目分析】 沉迷水題&#xff0c;吃棗藥丸。 【代碼】 #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define F(i,j,k) for (int ij;i<k;i) #define ll long long int cot[512],c1[512]…