Mysql
 sql >> Baza danych >  >> RDS >> Mysql

django+mysql=Obiekt 'DatabaseWrapper' nie ma atrybutu 'Błąd bazy danych'

Ok, więc miałem dokładnie ten sam problem. Istnieje wiele sugestii, jak zmodyfikować część istniejących bibliotek, aby Python3 działał z MySQL, ale nie znalazłem żadnej z nich, która działałaby w 100%. Nie udało mi się stworzyć oficjalnego konektora MySQL Python do pracy z Django i Pythonem 3.3.

To, co zadziałało, to przejście na bibliotekę PyMySQL. Kilka miesięcy temu już tego próbowałem, ale wtedy to nie działało. Teraz jest nowa wersja, 0.6.1, która działała po wyjęciu z pudełka. Kilka dodatkowych szczegółów:

Moje środowisko:OSX 10.9 , Python 3.3.3, Django 1.6.1, MyPySQL 0.6.1, MySQL Server 5.5 na Windows

Jak to zrobić:

  1. Zainstaluj PyMySQL w wersji 0.6.1 (https://github.com/PyMySQL/PyMySQL/ ):możesz go zainstalować albo za pomocą pip, tj. :pip install PyMySQL lub ręcznie pobierając pakiet; na ich stronie internetowej znajduje się dobra dokumentacja, jak to zrobić.

  2. Otwórz swoją aplikację Django __init__.py i wklej następujące linie:

    import pymysql
    pymysql.install_as_MySQLdb() 
    
  3. Teraz otwórz settings.py i upewnij się, że właściwość BAZY DANYCH wygląda tak:

    DATABASES = {
       'default': {
           'ENGINE': 'django.db.backends.mysql',
           'NAME': 'mydb',
           'USER': 'dbuser',
           'PASSWORD': 'dbpassword',
           'HOST': 'dbhost',
           'PORT': '3306'
        }
    }
    
  4. To wszystko, powinieneś być w stanie wykonać python manage.py syncdb więc zainicjuj swoją bazę danych MySQL; zobacz przykładowe wyjście poniżej:

    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.
    ...
    


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Po prostu przekonwertuj 5-cyfrowy numer w bazie mysql na datę

  2. Jak to zrobić w Laravel, podzapytanie gdzie in

  3. Funkcja MySQL RAND() – Generuj liczbę losową w MySQL

  4. Jak mogę używać ON DUPLICATE KEY UPDATE w PDO z mysql?

  5. java.sql.Rozszerzenie połączenia dla SSH