pull/109/head
Mr Chen 7 years ago
parent eca8cc479b
commit b4a7568c0a
  1. 38
      class/vilidate.py
  2. 20
      route/dashboard.py

@ -1,16 +1,12 @@
#!/usr/bin/env python
# coding: utf-8
# +-------------------------------------------------------------------
# | 宝塔Linux面板
# +-------------------------------------------------------------------
# | Copyright (c) 2015-2099 宝塔(http://bt.cn) All rights reserved.
# +-------------------------------------------------------------------
# | Author: 黄文良 <287962566@qq.com>
# +-------------------------------------------------------------------
import random, math
import random
import math
from PIL import Image, ImageDraw, ImageFont, ImageFilter
class vieCode:
__fontSize = 20 # 字体大小
__width = 120 # 画布宽度
@ -69,7 +65,8 @@ class vieCode:
def __createImage(self):
'''创建画布'''
bgColor = (random.randint(200,255),random.randint(200,255),random.randint(200,255))
bgColor = (random.randint(200, 255), random.randint(
200, 255), random.randint(200, 255))
self.__img = Image.new('RGB', (self.__width, self.__heigth), bgColor)
self.__draw = ImageDraw.Draw(self.__img)
@ -80,11 +77,13 @@ class vieCode:
font = ImageFont.truetype(self.__fontPatn, int(self.__fontSize / 1.5))
for i in xrange(5):
# 杂点颜色
noiseColor = (random.randint(150,200), random.randint(150,200), random.randint(150,200))
noiseColor = (random.randint(150, 200), random.randint(
150, 200), random.randint(150, 200))
putStr = random.sample(self.__str, 2)
for j in range(2):
# 绘杂点
size = (random.randint(-10,self.__width), random.randint(-10,self.__heigth))
size = (random.randint(-10, self.__width),
random.randint(-10, self.__heigth))
self.__draw.text(size, putStr[j], font=font, fill=noiseColor)
pass
@ -92,7 +91,7 @@ class vieCode:
'''画干扰线'''
if not self.__inCurve:
return
x = y = 0;
x = y = 0
# 计算曲线系数
a = random.uniform(1, self.__heigth / 2)
@ -103,7 +102,8 @@ class vieCode:
w = (2 * math.pi) / t
# 画曲线
color = (random.randint(30, 150), random.randint(30, 150), random.randint(30, 150))
color = (random.randint(30, 150), random.randint(
30, 150), random.randint(30, 150))
for x in xrange(xend):
if w != 0:
for k in xrange(int(self.__heigth / 10)):
@ -118,13 +118,15 @@ class vieCode:
def __printString(self):
'''打印验证码字符串'''
font = ImageFont.truetype(self.__fontPatn, self.__fontSize)
x = 0;
x = 0
# 打印字符到画板
for i in xrange(self.__length):
# 设置字体随机颜色
color = (random.randint(30, 150), random.randint(30, 150), random.randint(30, 150))
color = (random.randint(30, 150), random.randint(
30, 150), random.randint(30, 150))
# 计算座标
x = random.uniform(self.__fontSize*i*0.95,self.__fontSize*i*1.1);
y = self.__fontSize * random.uniform(0.3,0.5);
x = random.uniform(self.__fontSize * i * 0.95,
self.__fontSize * i * 1.1)
y = self.__fontSize * random.uniform(0.3, 0.5)
# 打印字符
self.__draw.text((x, y), self.__code[i], font=font, fill=color)

@ -1,15 +1,18 @@
# coding:utf-8
from flask import Flask
from flask import Blueprint, render_template
from flask import jsonify
from flask import request
import psutil
import time
import os
import sys
sys.path.append(os.getcwd() + "/class/")
import public
from flask import Flask, session
from flask import Blueprint, render_template
from flask import jsonify
from flask import request
from flask import make_response
from flask import Response
dashboard = Blueprint('dashboard', __name__, template_folder='templates')
@ -31,10 +34,13 @@ def code():
from StringIO import StringIO
out = StringIO()
print out
codeImage[0].save(out, "png")
return out.getvalue()
session['code'] = public.md5("".join(codeImage[1]).lower())
img = Response(out.getvalue(), headers={'Content-Type': 'image/png'})
ret = make_response(img)
return ret
@dashboard.route("/check_login")

Loading…
Cancel
Save