django - 从连接到 GCP 中部署的 Django 应用程序的 MongoDB 验证用户时出现数据库错误
问题描述
我在 Google Cloud Platform 中部署了一个 Django 应用程序。我正在使用 MongoDB 地图集来存储用户的数据。我可以通过在本地主机上运行它来成功注册和登录。但是当我尝试直接从应用程序的 URL 注册/登录时,它会给出数据库错误。在 settings.py 文件中,我给出了 MongoDB 数据库的连接字符串。我如何能够通过部署在 GCP 中的应用程序访问存储在 MongoDB 中的数据?
使用的资源是 App Engine 以及要部署的 Cloud SDK。
settings.py 文件中的数据库连接如下:
DATABASES = {
'default': {
'ENGINE': 'djongo',
'CLIENT': {
'name' : 'Example',
'host':'mongodb+srv://username:password@[host]?retryWrites=true&w=majority',
'username': 'username',
'password': 'password',
'authMechanism': 'SCRAM-SHA-1',
},
}
}
错误如下:
DatabaseError at /login
No exception message supplied
Request Method: POST
Request URL: https://[PROJECT-ID].ew.r.appspot.com/login
Django Version: 3.0.5
Exception Type: DatabaseError
Exception Location: /env/lib/python3.7/site-packages/djongo/cursor.py in execute, line 59
Python Executable: /env/bin/python3.7
Python Version: 3.7.9
Python Path:
['/srv',
'/env/bin',
'/opt/python3.7/lib/python37.zip',
'/opt/python3.7/lib/python3.7',
'/opt/python3.7/lib/python3.7/lib-dynload',
'/env/lib/python3.7/site-packages']
Server time: Tue, 17 Nov 2020 12:48:36 +0000
The above exception ( Keyword: None Sub SQL: None FAILED SQL: ('INSERT INTO "django_session" ("session_key", "session_data", "expire_date") VALUES (%(0)s, %(1)s, %(2)s)',) Params: (('[REDACTED_SESSION_KEY]', '[REDACTED_SESSION_DATA]', datetime.datetime(2020, 12, 1, 12, 48, 35, 677384)),) Version: 1.3.3) was the direct cause of the following exception:
/env/lib/python3.7/site-packages/django/db/backends/utils.py in _execute
return self.cursor.execute(sql, params) …
▼ Local vars
Variable Value
ignored_wrapper_args
(False,
{'connection': <djongo.base.DatabaseWrapper object at 0x3e8871fc0790>,
'cursor': <django.db.backends.utils.CursorDebugWrapper object at 0x3e8871afa790>})
params
('[REDACTED_SESSION_KEY]',
'[REDACTED_SESSION_DATA]',
datetime.datetime(2020, 12, 1, 12, 48, 35, 677384))
self
<django.db.backends.utils.CursorDebugWrapper object at 0x3e8871afa790>
sql
('INSERT INTO "django_session" ("session_key", "session_data", "expire_date") '
'VALUES (%s, %s, %s)')
Variable Value
db_exe
DatabaseError()
params
('[REDACTED_SESSION_KEY]',
'[REDACTED_SESSION_DATA]',
datetime.datetime(2020, 12, 1, 12, 48, 35, 677384))
self
<djongo.cursor.Cursor object at 0x3e8871afad90>
sql
('INSERT INTO "django_session" ("session_key", "session_data", "expire_date") '
'VALUES (%s, %s, %s)')
解决方案
推荐阅读
- python - 如何在 Boto3 中正确创建和附加 ELB
- vb.net - 如何拆分字符串而不是字符?
- react-native - 得到一个错误,说一个道具不是一个函数,而且它是未定义的
- javascript - 在 Express.js 中提供资产时遇到问题
- c++ - 从子菜单返回后,正确的输入至少进入验证循环一次
- r - 打印带有长字符串变量的数据框
- python - Heroku 应用程序未启动:进程以状态 0 退出
- python - 用于查找组合而不达到python内置限制的递归函数
- python - 如何比较两个日期列与熊猫中的常见类别?
- webpack - UglifyJs Webpack 插件在生产中失败