django MySQL 支持 iOS表情符号

作者: Ju4t

数据库设置

WechatIMG715.png

setting.py

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.mysql',
        'ENGINE': 'core.pool.mysql',  # 连接池
        'HOST': env.get('DB_HOST', '127.0.0.1'),
        'PORT': env.get('DB_PORT', 3306),
        'NAME': env.get('DB_NAME', 'blog'),  # 字符集:utf8mb4 排序规则:utf8mb4_unicode_ci (支持表情)
        'USER': env.get('DB_USER', 'root'),
        'PASSWORD': env.get('DB_PASS', '123456'),
        # 'CONN_MAX_AGE': 60,  # 连接存活时间,如果使用 db_pool.mysql 绝对不能设置此参数,否则会造成使用连接后不会快速释放到连接池,从而造成连接池阻塞
        'DB_POOL_SIZE': 500,  # 数据库连接池大小,mysql 总连接数大小为:连接池大小 * 服务进程数
        'OPTIONS': {
            "init_command": "SET default_storage_engine=INNODB, foreign_key_checks=0, sql_mode='STRICT_TRANS_TABLES'",  # foreign_key_checks iOS表情
            "charset": "utf8mb4",  # 编码集修改,utf8mb4为utf8的扩展集,支持emoji等特殊字符、表情
        }
    },
}

其中 foreign_key_checks 是重点

表情展示

😄 ✨ ✅ 📌 👍 🚜 🔥 🐳

至于已有数据如何转换成 utf8mb4_unicode_ci 网上教程一大堆~