Int()具有基本10的文字:从AJAX的表单数据上


@server.route('/bet', methods=['GET','POST'])
def bet():
with sqlite3.connect("steamid.db") as con:
    if g.user:
        steamdata = get_steam_userinfo(g.user.steam_id)
        c = con.cursor()
        c.execute("SELECT coins FROM user WHERE steam_id=?", (steamdata['steamid'],))
        user_coins = c.fetchall()
        user_coins = user_coins[0][0]
        steam_id = steamdata['steamid']
        steam_nick = steamdata['personaname']
        authlink = '''
            <a href="/logout">logout</a>
            '''
        coins = int(request.form.get('betting_coins', ''))
        print(coins)

我得到错误(base 10 :)的INT((文字无效。事实是,当我在控制台中打印硬币时,它说的200应该是一个有效的整数,也表明数据在请求中通过,因此硬币不应该是非类型。

我如何发布到数据:

function bet() {
var betting_coins = document.getElementById('bet_coins').value;
        alert(betting_coins);
        $.ajax({
            url: "/bet",
            type: "POST",
            data: {betting_coins: betting_coins}
        });
        //location.href = "/bet";
    }

你有:

coins = int(request.form.get('betting_coins', ''))

默认为''

,这不是int()的有效文字。尝试将其更改为0。否则,您可以添加try/catch