اذهب إلى المحتوى

السؤال

نشر

أنا أستخدم Python الإصدار 3.6 وقمت بتثبيت MySQL الإصدار 5.0 و جانغو Django أيضًا. ويبدو أن جانغو Django يعمل بشكل جيد مع Python (قمت بعمل مشروع بسيط وقد عمل بدون مشاكل)، لكن ليس مع MySQL. أحاول أن أقوم بالتحويل من إستخدام SQLite إلى MySQL لكن يظهر لي خطأ بعدم وجود MySQL، كيف أجعل جانغو Django يستخدم MySQL بدلًا من SQLite؟

 

Recommended Posts

  • 1
نشر

لكي يعمل Django مع MySQL يجب تثبيت حزمة إضافةي وهي mysqlclient (لـ بايثون 3) أو mysql-python (لـ بايثون 2)، ويمكنك أن تقوم بتثبيتها من خلال الأمر التالي:

pip install mysql-python 	# (python 2)
pip install mysqlclient 	# (python 3)

وإن كنت تستعمل نظام التشغيل لينكس (مبني على توزيعة Debian مثل Ubuntu أو Mint) فيمكنك أن تستخدم الأمر التالي:

apt-get install python-mysqldb

كما يجب عليك تعديل إعدادات المشروع لكي يستخدم MySQL من خلال ملف settings.py، كالتالي:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',	# تخبر Django بأن يستعمل محرك MySQL
        'NAME': 'django',
        'HOST': '',		# نص فارغ يعني localhost
        'PORT': '3306',
        'USER': 'root',
        'PASSWORD': '',
    }
}

ملاحظة: يمكنك حفظ معلومات المستخدم الخاص بقاعدة البيانات في ملف my.cnf على سبيل المثال، كالتالي:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'OPTIONS': {
            'read_default_file': '/path/to/my.cnf',
        },
    }
}

 

  • 0
نشر

للقيام بذلك بطريقة آمنة: 1.قم بتنفيذ: python manage.py dumpdata > datadump.json
2. قم بتغيير settings.py إلى ملف mysql الخاص بك.

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_api_test', # database name
'USER': 'root', # database username
'PASSWORD': 'admin', # database password
}

3. تأكد من أنه يمكنك الاتصال ب MySQL (أذونات ، إلخ). 4. قم بتنفيذ:

python manage.py migrate --run-syncdb

5.استبعاد بيانات ال contentype في ال shell :

python manage.py shell
from django.contrib.contenttypes.models import ContentType
ContentType.objects.all().delete()
quit()

6.وأخيراً:

python manage.py loaddata datadump.json

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...