Python 各个击破之 变量 第一部分

文采有限,于是乎,我也不打算做太多的修饰,只记录代码和我原来编写的注释

变量的作用于在函数体内放大到全局

今天在写一个验证码刷新的东西,发现我原来的代码又一个bug,就是点击可以有效的更新redis数据,但是如果时整页刷新,就会实效,这时因为用的js实现的,后来我发现用Python 的一个特性更好的解决此事。
废话不多说,直接上成品代码

import time
timestamp = ''


def create_captcha_fix(self):
    """
    在函数体内 global 声明 后的timestamp 变成了全剧变量,可以修改 timestamp的值
    从而达到第一次运行是pre_code 为空的效果,当被执行第一遍时 便可以赋值
    在执行第二遍时就可以确认上一次的值时多少
    :param self:
    :return:
    """
    global timestamp
    result = int(round(time.time()*1000)) # 将时间戳转换为13位,默认的有小数点
    pre_code = timestamp
    timestamp = result
    if pre_code is not None:
        self.redis.delete("captcha:%s" % pre_code)
    text, img = captcha.create_captcha()
    self.redis.setex("captcha:%s" % result, text, 120)
    return img

原有的js代码如下:

 var code = '';

    function get_image_code() {
        var d = new Date().getTime();
        var pre_code = code;
        code = d;
        $(".get_image_code").attr("src", "/captcha/" + pre_code + "/" + code);
        $("#code").attr("value", code);
    }

    $(document).ready(function () {
        get_image_code()
    })

参考文献

参考链接:

为了更好的发扬知识共享精神,把思路来源的地址也贴上,往后余生,都将会把有贡献的人的文章地址附上

http://www.cnblogs.com/summer-cool/p/3884595.html

相关文章