在Azure Function运行Django应用时遭遇MySQL驱动问题
在Azure Function上运行Django时解决
_mysql未定义的问题 这个错误确实是因为Azure Function环境中MySQL相关依赖没有正确安装导致的,以下是具体解决步骤:
检查并修正依赖配置
在项目的requirements.txt中添加正确的MySQL驱动包:
如果是x86架构的环境,直接用mysqlclient:django>=4.2 mysqlclient>=2.2.0如果是ARM架构的消费计划Linux环境(Azure Function常见架构),推荐用纯Python实现的
mysql-connector-python,避免编译问题:django>=4.2 mysql-connector-python>=8.2.0适配Django数据库配置
如果使用mysql-connector-python,需要修改settings.py中的数据库引擎配置:DATABASES = { 'default': { 'ENGINE': 'mysql.connector.django', 'NAME': '你的数据库名', 'USER': '数据库用户名', 'PASSWORD': '数据库密码', 'HOST': '数据库服务器地址', 'PORT': '3306', } }若用
mysqlclient,则保持ENGINE为django.db.backends.mysql即可。处理Linux环境的编译依赖(仅针对
mysqlclient)
若坚持使用mysqlclient,在Linux环境部署时需要提前安装MySQL开发库。可以在项目根目录创建.python_packages/build.sh脚本,内容如下:apt-get update && apt-get install -y default-libmysqlclient-dev gcc部署时Azure会自动执行该脚本安装编译依赖。
本地验证后重新部署
本地先安装依赖并测试数据库连接正常:pip install -r requirements.txt python manage.py migrate确认无问题后,再部署到Azure Function:
func azure functionapp publish <你的Function App名称>
内容的提问来源于stack exchange,提问作者kamprasad
相关产品推荐
相关产品推荐

