每次我尝试使用邮递员测试我的注册 Api 时,我都会收到内部服务器错误作为返回的错误消息,而在我的终端上我会收到此错误
[2020-01-05 07:14:52,933] ERROR in app: Exception on /register [POST]
web_1 | Traceback (most recent call last):
web_1 | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1949, in full_dispatch_request
web_1 | rv = self.dispatch_request()
web_1 | File "/usr/local/lib/python3.8/site-packages/flask/app.py", line 1935, in dispatch_request
web_1 | return self.view_functions[rule.endpoint](**req.view_args)
web_1 | File "/usr/local/lib/python3.8/site-packages/flask_restful/__init__.py", line 458, in wrapper
web_1 | resp = resource(*args, **kwargs)
web_1 | File "/usr/local/lib/python3.8/site-packages/flask/views.py", line 89, in view
web_1 | return self.dispatch_request(*args, **kwargs)
web_1 | File "/usr/local/lib/python3.8/site-packages/flask_restful/__init__.py", line 573, in dispatch_request
web_1 | resp = meth(*args, **kwargs)
web_1 | File "app.py", line 99, in post
web_1 | if UserExist(username):
web_1 | File "app.py", line 20, in UserExist
web_1 | count = db.users.count_documents({"Username": username})
web_1 | File "/usr/local/lib/python3.8/site-packages/pymongo/collection.py", line 1720, in count_documents
web_1 | return self.__database.client._retryable_read(
web_1 | File "/usr/local/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1453, in _retryable_read
web_1 | server = self._select_server(
web_1 | File "/usr/local/lib/python3.8/site-packages/pymongo/mongo_client.py", line 1253, in _select_server
web_1 | server = topology.select_server(server_selector)
web_1 | File "/usr/local/lib/python3.8/site-packages/pymongo/topology.py", line 233, in select_server
web_1 | return random.choice(self.select_servers(selector,
web_1 | File "/usr/local/lib/python3.8/site-packages/pymongo/topology.py", line 192, in select_servers
web_1 | server_descriptions = self._select_servers_loop(
web_1 | File "/usr/local/lib/python3.8/site-packages/pymongo/topology.py", line 208, in _select_servers_loop
web_1 | raise ServerSelectionTimeoutError(
web_1 | pymongo.errors.ServerSelectionTimeoutError: :27017: [Errno -2] Name or service not known
web_1 | 172.20.0.1 - - [05/Jan/2020 07:14:52] "POST /register HTTP/1.1" 500 -
以下是我的注册和用户检查代码
class Register(Resource):
def post(self):
postedData = request.get_json()
username = postedData["username"]
password = postedData["password"]
if UserExist(username):
retJson = {
"status code": 301,
"message": "Invalid username"
}
return jsonify(retJson)
hashed_pw = bcrypt.hashpw(password.encode('utf8'), bcrypt.gensalt())
users.inser({
"Username": username,
"Password": hashed_pw
})
retJson = {
"status code": 200,
"message": "successfully registered"
}
return jsonify(retJson)
def UserExist(username):
count = db.users.count_documents({"Username": username})
if count <= 0:
return False
else:
return True
我已经尝试了所有我能想到的技巧,请知道什么是错的以及如何解决这个问题,谢谢。