这个问题在这里已有答案:
我正在开发用户注册和登录API。 DB是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
请帮助..我真的需要这个..或任何教程可以继续。
错误已解决
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