我用 flask ,就一行渲染页面的代码,渲染的页面也基本纯 html 没有其他的东西,没有外链,为什么有时候要几百毫秒来渲染,多刷新几下又只需要几十毫秒,再刷新又变回几百毫秒反复,对于一个输出验证码图片的接口调用更是一快一慢很有规律……以下是我的代码:
from flask import Flask,Blueprint,redirect,url_for,render_template,send_file,make_response,session
from io import BytesIO
import random
import string
from wheezy.captcha.image import *
home = Blueprint("home",__name__)
@home.route("/")
def index():
return render_template("home/index.html")
@home.route("/v")
def v():
captcha_image = captcha([background(),
text(fonts=['arial.ttf'],
font_sizes=[46],
drawings=[warp(),
rotate(),
offset()]),
curve(),
noise(),
smooth()],150,45)
vcode = random.sample(string.ascii_letters + "".join([str(x) for x in range(0,10)]),4)
image = captcha_image(vcode)
out = BytesIO()
image.save(out, 'jpeg', quality=20)
image.close()
out.seek(0)
resp = make_response(send_file(out,"image/jpeg"))
resp.headers["cache-control"] = "no-cache"
session["vcode"] = "".join(vcode)
return resp
if __name__ == '__main__':
import os
HOST = os.environ.get('SERVER_HOST', 'localhost')
try:
PORT = int(os.environ.get('SERVER_PORT', '5555'))
except ValueError:
PORT = 5555
app.debug = True
app.run(HOST, PORT)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.