سؤال

إذا كنت تريد كتابة تطبيق لموقع، ولكن أراد أن تجعل التطبيق التوصيل والتشغيل حتى تتمكن من إسقاطه في أي مشروع Django، فقم بتعيين عنوان URL الرئيسي وهناك، كيف يمكنك القيام بذلك إذا كنت ترغب في الحفاظ على كل شيء تطبيقات الأداة المساعدة الأخرى المضمنة في التطبيق المحمول الخاص بك.

مثال:

site/
site/site-app1
site/templates/site-app1
site/util-app1
site/util-app2
site/util-app3

ملاحظة: أن APP1 الموقع يستخدم استخدام جميع تطبيقات Util الثلاثة. إنه يعمل بشكل رائع بهذه الطريقة. ولكن الآن، قررت إرسال التطبيق إلى شخص ما، ولكن هذا التطبيق فقط بكل تبعياته.

إذا استطعنا حزمة وإرسال تطبيقات مثل هذا؟:

site/site-app1
site/site-app1/template
site/site-app1/util-app1
site/site-app1/util-app2
site/site-app1/util-app3

ثم ترسل فقط موقع الموقع 1 وكل شيء يذهب معها.

هل هناك طريقة لجعل المحمولة مع تطبيقات الأداة المساعدة كدليل فرعي؟

ملاحظة: الفكرة هي أننا لا نريد إرسال المشروع بأكمله، ولكن تطبيق موقع واحد داخل المشروع فقط.

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

المحلول

العروض الجغرافي الروابط مع مصادر جيدة لمعلومات عامة. للإجابة على سؤالك المزيد مباشرة, ، ليس هناك طريقة لحزم تطبيق واحد داخل واحد آخر (تعديل آسف، هذا هو مجرد خطأ سهل. يمكنك وضع تطبيق واحد داخل مساحة الاسم الأخرى، ويعمل على ما يرام. إنه لأمر غريب أن تفعله على الرغم من: أنت تعني أن التطبيق واحد هو جزء من الآخر؛ إذا كان هذا صحيحا، فسيكونون أسهل في استخدام تطبيق واحد. لذلك ما زلت أوصي بأحد الخيارات أدناه). afaict الخيارات الخاصة بك هي:

  1. إذا كان ذلك ممكنا، فقم بإجراء هذه التبعيات الخارجية الاختيارية (أي الوظائف المعززة إذا كان UTIL_APP1 متاحا، سلوك الأسطوانة إذا لم يكن الأمر كذلك). هذا هو عدد التطبيقات التي تتصرف بها فيما يتعلق، على سبيل المثال، Django-tagging أو django-mailer.

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

  3. حزمة وتوزيع جميع التطبيقات بشكل منفصل ولاحظ التبعيات في كل من الوثائق وفي برنامج Setup.py Install.Requires. إذا كانت جميع التطبيقات مفيدة بشكل مستقل، فقد يكون هذا النهج أفضل. إذا لم تكن كلها مفيدة بشكل مستقل، فلماذا يتم فصلها جميعها؟

نصائح أخرى

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

يمكن إجراء تطبيقات Django المحمولة عن طريق الالتزام بممارسات معينة. فكورسي، هذه ليست مفوضة

موقع التطبيق

تتمثل الاتفاقية في إضافة تطبيقات في تطبيقات / دليل، وتعديل الإدارة. في النهاية تكوين Apache)

import sys
from os.path import abspath, dirname, join
PROJECT_ROOT = abspath(dirname(__file__))
sys.path.insert(0, join(PROJECT_ROOT, "apps"))

هيكل الدليل الخاص بك سوف تبدو مثل

site
site/apps/
site/apps/app1/
site/apps/app2/

قوالب

توجد قوالب في دليل القسم في التطبيق. لا تقم الاتفاقية بإجبار المستخدم على نسخها في أي موقع آخر. في النهاية يمكن للمستخدم الحصول على قوالب عالمية لتجاوز تلك الموجودة في التطبيق.

إعدادات

احتفظ بجميع الإعدادات الافتراضية في ملف محلي ضمن دليل التطبيقات. سيتم تجاوز الإعدادات من خلال الإعدادات العالمية. سيكون ملف الإعدادات المحلية هو الهيكل التالي ..

from django.conf import settings

def get(key, default):
    return getattr(settings, key, default)

SETTING_1 = get('SETTTING_1', 10)

يجب أن تغطي هذه الاتفاقيات معظم القضايا الرئيسية.

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