سؤال

ما هي أفضل طريقة لنقل موقع Drupal الحالي إلى تطبيق Django؟لدي حوالي 500 صفحة (معظمها وحدة كتب) وحوالي 50 مشاركة مدونة.أنا لا أستخدم أي وحدات تابعة لجهة خارجية.أرغب في الاحتفاظ بعناوين URL الحالية (لأغراض تحسين محركات البحث) وترحيل قاعدة البيانات إلى Django.سأقوم بإنشاء تطبيق مدونة بسيط، لذلك يجب أن يكون ترحيل منشورات المدونة أمرًا جيدًا.ما هي أفضل طريقة لخدمة أكثر من 500 صفحة باستخدام Django؟أرغب في استخدام المسؤول لتحرير/إضافة صفحات جديدة.

هل كانت مفيدة؟

المحلول

كل تطويرات Django متشابهة، وسوف يتناسب تطويرك مع النمط.

  1. حدد نموذج Django لكتبك ومنشورات مدونتك.

  2. تقوم الوحدة باختبار هذا النموذج باستخدام إمكانات الاختبار المضمنة في Django.

  3. اكتب بعض الأدوات المساعدة الصغيرة لتحميل بياناتك القديمة إلى Django.عند هذه النقطة، ستدرك أن نموذج Django الخاص بك ليس مثاليًا.جيد.اصلحه.إصلاح الاختبارات.إعادة الأحمال.

  4. قم بتكوين واجهة الإدارة الافتراضية للنموذج الخاص بك.عند هذه النقطة، ستقضي بعض الوقت في تعديل واجهة الإدارة.ستدرك أن نموذج البيانات الخاص بك خاطئ.وهو أمر جيد.أصلح النموذج الخاص بك.إصلاح الاختبارات الخاصة بك.إصلاح الأحمال الخاصة بك.

  5. الآن بعد أن أصبحت بياناتك صحيحة، يمكنك إنشاء قوالب من صفحاتك القديمة.

  6. قم بإنشاء تعيينات URL وعرض الوظائف لملء القوالب من نموذج البيانات.

خذ الوقت الكافي للحصول على نموذج البيانات بشكل صحيح.إنه أمر مهم حقًا، لأن كل شيء آخر يكون بسيطًا جدًا إذا كان نموذج البيانات الخاص بك ثابتًا.

نصائح أخرى

قد يكون من الممكن لكتابة نماذج جانغو التي تعمل مع قاعدة البيانات القديمة (لقد فعلت ذلك في الماضي، وانظر مستندات على manage.py inspectdb)

.

ولكن، كنت اتبع النصائح أعلاه وتصميم قاعدة بيانات نظيفة باستخدام اصطلاحات جانغو، ثم ترحيل البيانات عبر. أنا عادة كتابة البرامج النصية الهجرة التي الكتابة إلى قاعدة بيانات جديدة من خلال بفك وقراءة واحدة القديم باستخدام واجهات برمجة التطبيقات الخام بايثون DB (في حين أنه من الممكن ربط جانغو إلى <لأ href = "http://groups.google.com/group/ جانغو مطوري / browse_thread / موضوع / 9f0353fe0682b73 "يختلط =" نوفولو noreferrer "> قواعد بيانات متعددة في وقت واحد ، أيضا).

وأقترح أيضا أن نلقي نظرة على تطبيقات المدونات المتاحة لجانغو. إذا كان واحد المدرجة في Pinax تناسب حاجتك، والمضي قدما في استخدام Pinax كنقطة انطلاق.

S.Lott الجواب لا تزال سارية المفعول بعد سنوات، وأنا أحاول أن أكمل تحليل بالأدوات والتنسيق للقيام هذه المهمة.

وهناك العديد من الأدوات تصدير دروبال من هناك حتى الآن ولكن مع نفس الطلب أذهب ل المشاهدات مصدر بيانات اختيار JSON كما شكل. هذه الوحدة هي قوية جدا والمتاحة للحصول على الإصدار الأخير من دروبال. و JSON شكل سريع جدا في كل من تحليل وترميز وأنه من السهل قراءة ودية بيثون جدا (< وأ href = "https://docs.python.org/2/library/json.html" يختلط = "نوفولو noreferrer"> استيراد سلمان).

واستخدام طرق العرض DATASOURCE يمكنك إنشاء طريقة عرض عقدة مرتبة حسب معرف عقدة (NID)، وتبين عدد محدود من العناصر في الصفحة، تكوين مسار الرأي، إضافة إلى أنه معرف مرشح وتمرير إليها NID لقراءة جميع العناصر حتى تحصل على استجابة JSON فارغة.

عند استيراد في جانغو لديك مجموعة واسعة من الأدوات أيضا، بدءا من <لأ href = "https://docs.djangoproject.com/en/1.8/howto/initial-data/#providing-initial-data -مع-تركيبات "يختلط =" نوفولو noreferrer "> loaddata لتحميل المباريات . المشاهدات مصدر بيانات تصدير JSON لكنه غير مهيأ كما تتوقع بفك التجهيزات: يمكنك كتابة <لأ href = "https://docs.djangoproject.com/en/1.8/howto/custom-management-commands/" يختلط = "نوفولو noreferrer "> الأمر المشرف مخصصة للقيام الاستيراد، حيث يمكنك الحصول على السيطرة الكاملة على تدفق الواردات.

ويمكنك البدء في الأمر الخاص تمرير NID = 0 كما حجة ومن ثم السماح للإجراء قراءة والاستيراد وثم جلب البيانات من وفاة الصفحة التالية ببساطة الماضي NID قراءة في طلب HTTP السابق. يمكنك حتى تقييد الوصول إلى مسار على وجهة نظر ولكن كنت بحاجة الى تكوين إضافي على الجانب الاستيراد.

وفيما يتعلق الأداء، فقط على سبيل المثال I تحليل والمستوردة 15.000+ العقد في أقل من 10 دقائق عن طريق جانغو 1.8 مخصص قيادة المشرف على / 8 GB لينكس آلة 8 الأساسية الافتراضية و<لأ href = "HTTP: // شبكة الاتصالات العالمية. postgresql.org/ "يختلط =" نوفولو noreferrer "> كيو كما نظم إدارة قواعد البيانات، تسجيل النجاح ومعلومات خطأ في نموذج مخصص لكل عقدة.

وهذه هي أساسيات الاستيراد / التصدير بين هذه المنصة اثنين، للحصول على معلومات مفصلة وصفت كل في خطوات رئيسية للتصدير من دروبال ومن ثم استيراد لجانغو في هذا الدليل .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top