Django 랜 덤 그래 픽 인증 코드 구현 예시
전단 코드:
<div class="container">
<div class="row">
<div class="col-md-6">
<label for="yzm_id"> :</label>
<input type="text" class="form-control" id="yzm_id" placeholder="" name="yzm">
</div>
<div class="col-md-6">
<img id='yzm_img_id' src="/yzm/" alt="" style="width: 260px;height: 40px">
</div>
</div>
<div>
백 엔 드 코드:
from PIL import Image,ImageDraw,ImageFont
from io import BytesIO,StringIO
# (*,*,*),
def r_num(number):
#number 2 , , ,
if number==2:
return random.randint(0,128),random.randint(0,128),random.randint(0,128)
#number==1 ,
if number == 1:
return random.randint(128, 255), random.randint(128, 255), random.randint(128, 255)
def yzm(request):
# Image ,‘RGB' 。 。 , , red,
yzm_img=Image.new("RGB",(260,40),r_num(1))
# yzm_img
draw=ImageDraw.Draw(yzm_img)
# ,ttf , static ,40
font=ImageFont.truetype('static/1.ttf',40)
#
code=''
# 5 , 5
for i in range(5):
# 0 9
random_num=str(random.randint(0,9))
# 65 90 ,chr ASCLL 。65 90
random_up=str(chr(random.randint(65,90)))
# ,
random_low=str(chr(random.randint(97,122)))
#
random_code=random.choice([random_num,random_up,random_low])
# 。 (x,y), , , , , 。
draw.text((45*i,-5),random_code,r_num(2),font)
code+=random_code
io_obj=BytesIO()
#
yzm_img.save(io_obj,'png')
# session
request.session['code']=code
#
return HttpResponse(io_obj.getvalue())
지금 새로 고침 하면 인증 코드 를 새로 고침 할 수 있 습 니 다.인증 코드 를 클릭 하기 만 하면 인증 코드 를 바 꿀 수 있 습 니 다.
전단 스 크 립 트 코드:
여기에 이렇게 쓰 인 것 은 주소 뒤에 문 자 를 붙 이기 만 하면 그림 을 새로 고치 기 때문이다.
$('#yzm_img_id').click(function () {
var path2 = $(this).attr('src');
$(this).attr('src', path2 += '?')
});
이상 은 Django 가 랜 덤 그래 픽 인증 코드 를 실현 하 는 예제 의 상세 한 내용 입 니 다.Django 그래 픽 인증 코드 에 관 한 자 료 는 다른 관련 글 을 주목 하 십시오!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Django 라우팅 계층 URLconf 작용 및 원리 해석URL 구성(URLconf)은 Django가 지원하는 웹 사이트의 디렉토리와 같습니다.그것의 본질은 URL과 이 URL을 호출할 보기 함수 사이의 맵표입니다. 위의 예제에서는 URL의 값을 캡처하고 위치 매개 변수로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.