刚用 flask ,在写一个验证码的生成和验证时遇到了问题:
我定义了一个captcha(),用于处理'/captcha'这个 url ,代码如下:
@app.route('/captcha')
def captcha():
from captcha.image import ImageCaptcha
from random import random
image = ImageCaptcha()
x = int(round(random() * 10000))
if x < 1000: x += 1000
session['CAPTCHA_NUM'] = x
return image.generate(str(session['CAPTCHA_NUM']), 'png').getvalue()
在 register.html 里调用:
图形验证码:<input type="text" name="captcha" onblur="validate_captcha()" /><label id="captcha_v"></label><br/>
<img id="vcode" src="{{url_for('captcha')}}" alt="captcha" /><a href="javascript:void(0)" onclick="change_one()">换一张</a><br/>
然后,每当我点击一次‘换一张’,验证码图片会更新;
在captcha()中利用print发现session[CAPTCHA_NUM]也更新了;
但在register.html调用{{session[CAPTCHA_NUM]}}的话,并没有更新;
只有刷新页面后,页面的session[CAPTCHA_NUM]才会更新成之前的值,但这时验证码已经又更新了,所以session[CAPTCHA_NUM]还是和验证码不同的值
哪里出问题了:(?