TypeError:在字符串格式化python Flask期间并非所有参数都转换了[重复]

Posted

技术标签:

【中文标题】TypeError:在字符串格式化python Flask期间并非所有参数都转换了[重复]【英文标题】:TypeError: not all arguments converted during string formatting python Flask [duplicate] 【发布时间】:2018-03-03 06:13:02 【问题描述】:

我正在开发用户注册和登录 API。数据库是 mysql。 getAllUser 正在正常运行。但是当我尝试使用 post 方法来插入一行时,它会一直抛出这个错误。

TypeError: not all arguments converted during string formatting

我的代码:数据库结构:

 id(autoincrement), usr_name(varchar 30), password(varchar 20)

插入代码:

当我完美地获得所有用户列表时,连接是正确的。

mysql = MySQL()

app = Flask(__name__)
app.config['MYSQL_DATABASE_USER'] = 'xxx'
app.config['MYSQL_DATABASE_PASSWORD'] = 'xxx'
app.config['MYSQL_DATABASE_DB'] = 'xxx'
app.config['MYSQL_DATABASE_HOST'] = 'xxx.xxx.xxx.xxx'

mysql.init_app(app)


class UserRegister(Resource):
    TABLE_NAME = 'user'

    parser = reqparse.RequestParser()
    parser.add_argument('usr_name',
        required=True,
        help="This field cannot be left blank!"
    )
    parser.add_argument('password',
        required=True,
        help="This field cannot be left blank!"
    )


    def post(self):
        data = UserRegister.parser.parse_args()
        print(data)
        cursor = mysql.connect().cursor()

        query = "INSERT INTO table VALUES (NULL, ?, ?)".format(table=self.TABLE_NAME)
        cursor.execute(query, (data['usr_name'], data['password']))

        return "message": "User created successfully.", 201

请帮忙.. 我真的需要这个.. 或任何教程。

【问题讨论】:

将查询替换为“INSERT INTO table (usr_name, password) VALUES (?, ?)”.format(table=self.TABLE_NAME) 【参考方案1】:

错误已解决

def post(self):
            data = UserRegister.parser.parse_args()
            print(data)

        cursor = mysql.connect().cursor()

        username = request.json['usr_name']
        password = request.json['password']

        query = "insert into user values(null,'0','1')".format(username,password)
        cursor.execute(query)

        return "message": "User created successfully.", 201

【讨论】:

以上是关于TypeError:在字符串格式化python Flask期间并非所有参数都转换了[重复]的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:在字符串格式化python Flask期间并非所有参数都转换了[重复]

Python TypeError:格式字符串的参数不足

typeError:并非所有参数都在字符串格式化期间进行了转换

python 链接数据时报错 TypeError: %d format: a number is required, not str 是因为端口号写成字符串格式的了

TypeError:字符串索引必须是整数 Python 2

Python-TypeError: not all arguments converted during string formatting