def Look(): cu.execute("select * from student") s=cu.fetchall() r='' if len(s)==0: tkm.showerror("查阅失败","无学生信息") else: for k in s: r=r+k[0]+','+k[1]+','+k[2]+','+k[3]+','+k[4]+','+'\n' vShow.set(r)为什么报错说TypeError: can only concatenate str (not "int") to str
时间: 2024-01-10 19:05:07 浏览: 364
这个错误是因为在这一行中:`r=r+k[0]+','+k[1]+','+k[2]+','+k[3]+','+k[4]+','+'\n'`,你尝试将整数类型的 `k[0]`、`k[2]` 和 `k[4]` 与字符串连接起来。你需要将它们转换为字符串类型,可以使用 `str()` 函数将它们转换为字符串,例如:
```
r = r + str(k[0]) + ',' + k[1] + ',' + str(k[2]) + ',' + k[3] + ',' + str(k[4]) + ',' + '\n'
```
这样就可以避免这个错误了。
相关问题
def Look(): sql = "select * from student" cur.execute(sql) s = cur.fetchall() r = '' if len(s) == 0: tkm.showerror("查阅失败", "无学生信息") else: for k in s: r = r + k[0] + ',' + k[1] + ',' + k[2] + ',' + k[3] + ',' + k[4] + ',' + '\n' vShow.set(r)else 后面的语句是什么意思
这段代码定义了一个名为Look的函数,它会执行一个查询数据库中student表的SQL语句,并将查询结果存储在变量s中。如果查询结果为空,则会弹出一个提示框,显示“查阅失败,无学生信息”。否则,函数会遍历查询结果,将每个学生的信息按照一定的格式拼接成一个字符串r,并将其赋值给变量vShow。最后,函数会返回变量vShow的值。
写出def post_dqjy_data(): user = request.json.get('user') conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='123456', database='图书馆', charset='utf8mb4', cursorclass=cursors.DictCursor) cursor = conn.cursor() sql = 'select * from user where name=%s' cursor.execute(sql, user) data = cursor.fetchall() try: if data[0]['role'] == 'ADMIN': sql = 'select * from book where status=1 or status=2' cursor.execute(sql) result = cursor.fetchall() return jsonify({'result': result, 'code': 200}) elif data[0]['role'] != 'ADMIN': sql = 'select * from book where borrower=%s and status=1' cursor.execute(sql, user) data = cursor.fetchall() return jsonify({'result': data, 'code': 200}) except: return jsonify({'code': 404})这段代码的功能原理
这段代码是一个 Flask 应用程序中的一个 POST 请求处理函数,函数名为 post_dqjy_data。它的主要功能是根据请求中传递的用户信息,查询数据库中的图书信息并返回给客户端。具体实现步骤如下:
1. 从请求的 JSON 数据中获取用户信息。
2. 连接 MySQL 数据库,并创建游标对象。
3. 执行 SQL 查询语句,根据用户信息查询数据库中的用户信息。
4. 如果查询到的用户具有管理员权限,查询数据库中的所有图书信息。
5. 如果查询到的用户不是管理员,查询数据库中该用户借阅的图书信息。
6. 将查询结果封装成 JSON 格式,返回给客户端。
如果查询数据时出现异常,将返回错误码 404。
阅读全文