web-dev-qa-db-fra.com

Comment configurer Django en utilisant pymysql en tant que pilote?

Je suis nouveau à Django. Cela m'a fait perdre tout l'après-midi de configurer le moteur MySQL. Je suis très confus sur le moteur de base de données et le pilote de base de données. Le moteur _ est-il aussi le pilote? Tout le tutoriel disait que le moteur devrait être 'Django.db.backends.mysql', mais comment le moteur décide-t-il quel pilote est utilisé pour connecter MySQL? 

À chaque fois qu'il indique "Django.db.backends.mysql", malheureusement, je ne peux pas installer MySQLDb et mysqlclient, mais PyMysql et le connecteur mysql officiel 2.1.3 ont été installés. Comment définir le pilote sur PyMysql ou le connecteur mysql?

Merci beaucoup!

  • OS: OS X Al Capitan
  • Python: 3.5
  • Django: 1,9

Cette question n'est pas encore résolue: Le ENGINE est-il aussi le PILOTE

16
zhy1378

Vous pouvez importer pymsql pour qu'il se présente sous la forme MySQLdb . Vous aurez besoin de faire ceci avant que tout code Django soit exécuté, donc mettez ceci dans votre fichier manage.py

import pymysql
pymysql.install_as_MySQLdb()
57
user764357

La réponse courte est non, ils ne sont pas les mêmes.

Le engine, dans un contexte Django, fait référence à la technologie SGBDR. Driver est la bibliothèque développée pour faciliter la communication avec cette technologie réelle lorsqu'elle est opérationnelle. Informer Django du moteur à utiliser lui indique comment traduire les fonctions ORM à partir d’une perspective d’arrière-plan. Le développeur ne voit pas de changement de code ORM, mais Django saura convertir ces actions en un langage compris par la technologie. Le pilote prend ensuite ces actions (par exemple, sélectionne, met à jour, supprime) et les envoie à une instance en cours d'exécution pour faciliter l'action.

0
avelis