在腾讯蓝鲸平台上存储emoji表情的一种解决方案

时间:2023-01-11 14:44:03

背景

这个暑假,打算写一个校园二手交易平台,用Django写,学长给我推荐了蓝鲸Django框架,刚好那个时候这个项目还没怎么开始写,便将开发框建换成了蓝鲸的Django框架。
在实际操作中,要保存用户的物品内容以及评论,这里都可能会出现emoji表情。但蓝鲸实际上是不支持的。

不支持的原因

首先,蓝鲸推荐安装的是MySQL-python==1.2.3,这东西无法让你根数据库使用utf8mb4编码交流,而mysql存储emoji的必要条件就是编码得是utf8mb4,但是蓝鲸分配给你的mysql只是utf8编码。

解决方法

mysql包

两种解决方案,
1.在requirements.txt中改为
MySQL-python==1.2.5
2.使用pymysql==0.7.11
在你的app目录下的__init__.py加入
import pymysql
pymysql.install_as_MySQLdb()

编码

编码这东西仅靠蓝鲸分配的mysql是没办法解决的,因为你没法登录上去修改。这一点,推荐大家去腾讯云弄一个服务器,安装mysql,版本最好是最新的(>= 5.7.18),老版本的会报索引字符太长(5.6)。

最后

如此一来就能存储emoji表情了,很开心~