How to config Django using pymysql as driver?

自古美人都是妖i 提交于 2019-12-28 10:44:50

问题


I'm new to Django. It wasted me whole afternoon to config the MySQL engine. I am very confused about the database engine and the database driver. Is the engine also the driver? All the tutorial said that the ENGINE should be 'django.db.backends.mysql', but how the ENGINE decide which driver is used to connect MySQL?

Every time it says 'django.db.backends.mysql', sadly I can't install MySQLDb and mysqlclient, but PyMysql and the official mysql connector 2.1.3 has been installed. How could I set the driver to PyMysql or mysql connector?

Many thanks!

  • OS: OS X Al Capitan
  • Python: 3.5
  • Django: 1.9

This question is not yet solved: Is the ENGINE also the DRIVER?


回答1:


You can import pymsql so it presents as MySQLdb. You'll need to do this before any django code is run, so put this in your manage.py file

import pymysql
pymysql.install_as_MySQLdb()



回答2:


The short answer is no they are not the same.

The engine, in a Django context, is in reference to RDBMS technology. The driver is the library developed to facilitate communication to that actual technology when up and running. Letting Django know what engine to use tells it how to translate the ORM functions from a backend perspective. The developer doesn't see a change in ORM code but Django will know how to convert those actions to a language the technology understands. The driver then takes those actions (e.g. selects, updates, deletes) and sends them over to a running instance to facilitate the action.



来源:https://stackoverflow.com/questions/34777755/how-to-config-django-using-pymysql-as-driver

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!