PyMySQL显然返回旧/快照值/不重新运行查询?

时间:2015-11-06 14:51:01

标签: python mysql pymysql

我正在使用 parsed_return.forEach(function(entry) { entry.pages.forEach(function(page) { $('<div style="margin-bottom: 50px;">' + '<div class="col-xs-1"></div>' + '<div class="col-xs-10 page" id="' + page.id + '" style="padding: 0px;">' + '<img class="image" src="' + base_url + page.page_uri + '&dpi=150">' + '</div>' + '<div class="col-xs-1"></div>' + '</div>').data( 'page_id', page.id ).addClass( 'row' ).appendTo( '#page-view' ); page_list.push(page.id); console.log($("#" + page.id + " img").width()); // Outputs 1279px (Natural) }); }); setTimeout(function(){ console.log($("#page-view .page img").first().width()); // Outputs 1279px (Natural) },100); setTimeout(function(){ console.log($("#page-view .page img").first().width()); // Outputs 1267px (adjusted to 100% based on window size) },300); 和一个简化的代码示例,它从表中加载一行并每秒打印一次:

pymysql.cursors

状态是MariaDb数据库中包含单行的表。

现在正在运行,如果我启动一个MySQL客户端并更改表的内容,这个脚本可以快速地保留原始值;即它显然没有咨询数据库(!)。

我对Python很新,我是PyMySQL的新手,所以如果这是一个愚蠢的问题,那么我会有this one,但它看起来很奇怪。

1 个答案:

答案 0 :(得分:12)

我不明白为什么这是必要的,但你可以通过

解决它
  1. autocommit=True添加到connect()参数中。

  2. conn.commit()命令后调用cursor.execute()

  3. 似乎默认情况下它会在快照或其他事情上启动事务。我(紧张地!)在pymysql repo上提交了issue,因为我在这里没有听到任何消息。这个解释立即关闭

      

    它是repeatable read

    如果有人比使用autocommit更了解某些事情,请告诉我。