i'ev 在 Web 派系服务器上使用 Django 和 python3 开发了一个聊天机器人 Web 应用程序。基本上,聊天机器人作为客户服务器与商店的用户进行交互。它使用 REST API 来 POST 用户输入,使用 GET 来显示聊天机器人输出,并使用 python 文件来处理输入并查找输出。
聊天如何进行:
<强>1。 chatboy.js:它首先在 API 中 POST 用户输入,然后运行 python 文件 chabot.py。
<强>2。 chabot.py:连接到Django后端db.sqlite3和conversation.sqlite3的python文件。因此它从db.sqlite3中选择用户输入,然后在conversation.sqlite3中选择匹配的输出。最后该文件将更新 db.sqlite3 中的聊天机器人输出。
<强>3。 chatboy.js:将获取最后的聊天机器人输出并显示它。
在开发阶段,当我在本地服务器中测试应用程序时,一切正常,但问题出现了,我们在互联网上部署了 Django 项目。大多数情况下,停止申请表工作的主要错误是:
The database is locked
我做了很多研究并发现:
sqlite3 不适用于生产,仅适用于小型或独立应用程序。
sqlite3 存在多线程问题。
不适合实时聊天应用程序。
一些建议说要么
- 将所有 sqlite3 切换到 Mysql(但如何?以及如何更改 python 文件中的 sql 查询以适应 Mysql)
- 使用像Reddis这样的快速键值存储(这是否意味着将其作为我的项目的后端数据库或突出conversation.sqlite3?)
请帮助我,因为这非常令人沮丧,我很长时间以来都遇到此错误,但我找不到问题的解决方案。
谢谢,
PS:我正在使用 Django 10 、 python3 、 sqlite3 、 web 派服务器
最佳答案
您只需更新设置文件即可将数据库设置从 sqlite3 更改为 mysql 或 postgresql。但在此之前,您需要在 Webfaction 控制面板中创建一个数据库(更多信息 here )。
关于python - django 聊天机器人网站中从 Sqlite3 到 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43311210/