NameError:未定义名称“user\u id”。无缘无故

2024-04-26 00:43:34 发布

您现在位置:Python中文网/ 问答频道 /正文

错误描述

我将启动服务器程序,并在路径/test_connection处启动一个请求(GET),该路径是客户端用来测试服务器IP地址的路径。然后服务器将通过在控制台中打印下面的回溯来响应,有一行我特别想不通,那就是NameError: name 'user_id' is not defined,因为变量甚至没有包含在路径/test_connectionconnection_test())的响应函数中。我知道错误在服务器端,因为它会在客户端代码上打印出“internalservererror:500”,所以我觉得没有必要包含客户端代码。你知道吗

其他信息:

  • Python版本:3.7
  • 操作系统:Windows 10
  • 服务器库:Flask

错误回溯:

  Traceback (most recent call last):
  File "C:\Users\sccre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\flask\app.py", line 2309, in __call__
  return self.wsgi_app(environ, start_response)
  File "C:\Users\sccre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\flask\app.py", line 2295, in wsgi_app
  response = self.handle_exception(e)
  File "C:\Users\sccre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\flask\app.py", line 1741, in handle_exception
  reraise(exc_type, exc_value, tb)
  File "C:\Users\sccre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\flask\_compat.py", line 35, in reraise
  raise value
  File "C:\Users\sccre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\flask\app.py", line 2292, in wsgi_app
  response = self.full_dispatch_request()
  File "C:\Users\sccre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\flask\app.py", line 1815, in full_dispatch_request
  rv = self.handle_user_exception(e)
  File "C:\Users\sccre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\flask\app.py", line 1718, in handle_user_exception
  reraise(exc_type, exc_value, tb)
  File "C:\Users\sccre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\flask\_compat.py", line 35, in reraise
  raise value
  File "C:\Users\sccre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\flask\app.py", line 1813, in full_dispatch_request
  rv = self.dispatch_request()
  File "C:\Users\sccre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\flask\app.py", line 1799, in dispatch_request
  return self.view_functions[rule.endpoint](**req.view_args)
  File "E:\USB Stick Files\Programming\Python\Chat Room Thingy\server.py", line 19, in connection_test
  message_dict[user_id]
  NameError: name 'user_id' is not defined

服务器代码

from flask import Flask, request
from threading import Thread
import json

app = Flask(__name__)

message_dict = {}
ids = -1


@app.route('/test_connection')
def connection_test():
    global ids

    print('Connection tested from: {}'.format(request.remote_addr))

    ids += 1
    id_sent = str(ids)
    return '{}'.format(id_sent)

@app.route('/new_message', methods=['POST'])
def new_message():
    global message_dict

    message_text = request.form['message']
    user_id = request.form['id']

    try:
        message_dict[user_id]['message'] = message_text
    except:
        message_dict[user_id] = None
        message_dict[user_id]['message'] = message_text

    return '0'

@app.route('/chat')
def chat():
    return json.dumps(message_dict)

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0')

任何帮助都将不胜感激。你知道吗

奥斯卡。你知道吗


Tags: inpyidappflaskmessageliblocal
1条回答
网友
1楼 · 发布于 2024-04-26 00:43:34

好吧,代码对我来说完全正常。你知道吗

请尝试下列操作之一:

1.更改当前文件(将内容复制到其他文件)

2.使变量成为全局变量。你知道吗

3.直接从命令提示符/shell运行文件(有时有用)

4.确保你的口译员没事

相关问题 更多 >