Kann ich MySQL auf Django (dev 1.6.x) mit Python3.x verwenden?

Ich verwende Django dev (1.6.x) von git repo und ich möchte MySQL verwenden, aber auf der settings.py Datei kann MySQL nicht einrichten, da MySQL nicht in python3 und Django unterstützt wird, also habe ich pymysql Paket auf python3.x ohne verwendet Jedes Problem aber in Django kann das nicht auf settings.py aufstellen.

Kann ich mysql (oder pymysql oder?) Auf django mit python3 benutzen?

  • So erstellen Sie Identitätsmatrix mit numpy
  • Streifen Whitespace in generierten HTML mit reinen Python-Code
  • Installieren numpy auf Amazon EC2
  • Ändern der Standardeinrückung von etree.tostring in lxml
  • Null-Element aus dem Mongo-Array entfernen
  • Kombinieren Sie mehrere Textdateien in eine Textdatei mit python
  • 4 Solutions collect form web for “Kann ich MySQL auf Django (dev 1.6.x) mit Python3.x verwenden?”

    Pymysql für python 3 ist kein Django DB-Backend, aber es gibt Beweise dafür, dass einige Arbeiten gemacht wurden Portierung der MySQL Backend zu Python 3 kompatibel zu Django Python 3 MySQL Backend Änderungen .

    Andere Seiten zeigen, dass das MySQL-Backend mit Django 1.5 mit Python 3 funktioniert: Django MySQL Works auf Python 3.2.2

    Der Standard-MySQL-Wrapper, der auf Python 2.x (mysql-python) verfügbar ist, unterstützt jedoch nicht Python 3. Ich vermute, dass das Paket bei MySQL Python 3 kompatibel ist, können Sie es versuchen.

    Stellen Sie außerdem sicher, dass Sie Django mit Python 3.2 oder 3.3 oder höher laufen lassen. Python 3.0 wird nicht unterstützt.

    Wenn es nach diesen Kontrollen noch nicht funktioniert, bitte posten Sie Ihre DATENBANKEN Einstellungen, falls etwas nicht stimmt.

    Auch finde ich nichts über Django 1.5 im Django Repos, bist du sicher, dass es 1.6.x ist?

    Ich kämpfte auch mit MySQL Arbeit mit Django 1.6 und Python 3.3; Das einzige, was gearbeitet hat, war, um zu PyMySQL zu wechseln. Sehen Sie hier meinen Beitrag hier

    Hinzufügen der Antwort unten

    Meine Umgebung: OSX 10.9, Python 3.3.3, Django 1.6.1, PyMySQL 0.6.1, MySQL Server 5.5 unter Windows

    Wie es funktioniert?

    1. Installieren Sie PyMySQL Version 0.6.1 ( https://github.com/PyMySQL/PyMySQL/ ): Sie können es entweder mit pip install PyMySQL , dh: pip install PyMySQL oder manuelles Herunterladen des Pakets; Es gibt eine gute Dokumentation auf ihrer Website, wie man das macht.

    2. Öffnen Sie Ihre Django App __init__.py und fügen Sie die folgenden Zeilen ein:

       import pymysql pymysql.install_as_MySQLdb() 
    3. Nun, öffnen Sie settings.py und stellen Sie sicher, dass Ihre DATABASE-Eigenschaft wie folgt aussieht:

       DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'dbuser', 'PASSWORD': 'dbpassword', 'HOST': 'dbhost', 'PORT': '3306' } } 
    4. Das ist es, du solltest in der Lage sein, python manage.py syncdb auszuführen, um deine MySQL DB zu python manage.py syncdb ; Siehe Beispielausgabe unten:

       Creating tables ... Creating table django_admin_log Creating table auth_permission Creating table auth_group_permissions ... ... Creating table socialaccount_socialtoken You just installed Django's auth system, which means you don't have any superusers defined. ... 

    Ich habe auf mysql Unterstützung mit django und python 3.x für Alter gewartet und schließlich gibt es eine etwas offizielle kompatible Motor, dass lassen Sie dies tun.

    http://dev.mysql.com/doc/connector-python/de/connector-python-django-backend.html

    Ich habe ein virtualenv mit python 3 erstellt und konnte die datenbankspezifischen Einstellungen im obigen Link verwenden.

     DATABASES = { 'default': { 'NAME': 'mydatabase', 'ENGINE': 'mysql.connector.django', 'USER': 'mydbuser', 'PASSWORD': 'mydbpassword', 'OPTIONS': { 'autocommit': True, }, } } 

    Schneide und pastete die Modelle aus dem Django Poll Tutorial und 'python manage syncdb' gearbeitet.

    Weitere Tests, um zu sehen, ob das gesamte ORM diesen Connector unterstützt.

    Meine volle schreibe hier oben: http://bunwich.blogspot.ca/2014/02/finally-mysql-connector-that-works-with.html

    Ich habe dieses Problem dadurch behoben:

    Nach der Dokumentation von Django 1.8 und 1.9 ist mysqlclient der empfohlene Fahrer :

    MySQLdb ist ein nativer Fahrer, der seit über einem Jahrzehnt von Andy Dustman entwickelt und unterstützt wurde.

    Mysqlclient ist eine Gabel von MySQLdb, die vor allem Python 3 unterstützt und als Drop-In-Ersatz für MySQLdb verwendet werden kann. Zum Zeitpunkt dieses Schreibens ist dies die empfohlene Wahl für die Verwendung von MySQL mit Django.

    MySQL Connector / Python ist ein reiner Python-Treiber von Oracle, der die MySQL-Client-Bibliothek oder keine Python-Module außerhalb der Standardbibliothek benötigt.

    Also habe ich mysqlclient installiert

     sudo pip install mysqlclient 

    Konfiguriere die Datenbank in settings.py

     DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydjango', 'USER': 'user', 'PASSWORD': 'password', 'HOST': 'localhost', 'PORT': '3306' } } 

    Aber wenn ich ./manage.py syncdb zum Testen ./manage.py syncdb , erhielt ich einen Fehler:

     _mysql.so not found 

    Um dies zu beheben, fügen Sie hinzu

     export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/ 

    Zu ~/.bashrc

    Dann renne:

     source ~/.bashrc 

    Es sollte jetzt behoben werden.

    Python ist die beste Programmiersprache der Welt.