我有一个小程序,允许用户创建房间(即聊天)并加入房间。我创建了一个全局列表和一个dict来存储它们并在整个程序中进行访问。现在看来,当用户想要加入现有聊天时,python / flask(或更像是我)无法确定会议室是否已在列表或字典中
更新:被标记为重复并发现了很多建议,建议将这些数据存储在外部,但这是编程课程的一部分,该课程要求:创建一个类似松弛的迷你应用程序,具体来说:
您无需为此任务使用数据库。但是,您可以随意使用Flask应用程序将所需的任何数据存储在内存中,例如使用application.py中定义的一个或多个全局变量。
严重的是,没有办法通过全局变量来处理它吗?当我评估它们时,我绝对可以看到它们确实得到了更新和填充,为什么我不能只在IF中使用它们呢?
摘要:
roomsJSON = {}
roomsList = []
@app.route('/chatplace/<string:roomname>', methods=['GET', 'POST'])
def chatplace(roomname):
roomname = request.form["roomname"]
roomlabel = request.form["roomlabel"]
username = str(request.form["username"])
if (roomname in roomsList):
#find an already existing room
room = findRoomByName(roomname)
else:
#create a new one, update the dict and add the object to a list
room = chatroom(roomname, roomlabel)
roomsJSON.update({room.name: room.label})
roomsList.append(room)
return render_template('room.html', data=room, username=username)
由于某种原因,它总是进入else分支,我也尝试检查dict,但它仍然在那里。当我打印列表并将字典输出到控制台时,我肯定可以看到它确实存在。我应该去哪里看?谢谢!