2012-06-06 6 views
5

मेरे पास एक पृष्ठ है (/ गेम/तुलना/पर स्थित है) और यह एक मिनी छवि तुलना गेम है। उपयोगकर्ताओं को दो छवियां दिखायी जाती हैं और एक प्रश्न के जवाब में उनके बीच चयन करने के लिए कहा जाता है। यह पृष्ठ डेटाबेस से छवियां प्राप्त कर सकता है, जावास्क्रिप्ट और सीएसएस के साथ एक टेम्पलेट प्रस्तुत कर सकता है और AJAX का उपयोग कर डेटाबेस में वापस संवाद कर सकता है।कोड डुप्लिकेशन के बिना किसी अन्य में फ्लास्क पेज एम्बेड करें?

अब क्या होगा यदि मैं इस वोटिंग गेम को किसी भी कोड को डुप्लिकेट किए बिना मुख्य पृष्ठ पर एम्बेड करना चाहता हूं? आदर्श रूप से, मैं गेम को अपडेट करता हूं और गेम के "फीचर" वाले सभी पेज भी बदलावों को प्रतिबिंबित करेंगे।

मैं पूरी साइट के लिए एक सुसंगत और संगठित तरीके से संपत्तियों का प्रबंधन कैसे करें, इस पर लटका रहा हूं। कुछ पृष्ठों में सीएसएस, जावास्क्रिप्ट है और मैं बूटस्ट्रैप और जीआईएस फ्रेमवर्क जैसे ढांचे का भी उपयोग कर रहा हूं।

क्या मैं एक ब्लूप्रिंट के रूप में गेम को सेट अप करूंगा? मैं संपत्ति (जावास्क्रिप्ट और सीएसएस) कैसे व्यवस्थित करूं ताकि कोई डुप्लिकेशन नहीं हो?

वर्तमान में, मेरे पास एक टेम्पलेट (main.html) प्रस्तुत करने वाला एक पृष्ठ है जो एक और (base.html) बढ़ाता है। Base.html में body.html, nav.html और footer.html शामिल हैं जो शरीर और अन्य के लिए सेट किए गए ब्लॉक के साथ हैं।

मेरा वर्तमान दृष्टिकोण सबसे कम स्तर पर सबकुछ बाहर निकालना है और इसे उच्चतम स्तर पर फिर से इकट्ठा करना है, जो कोडिंग को वास्तव में धीमा कर देता है। उदाहरण के लिए, मेरे पास वो वोटिंग गेम है और अभी यह वोटिंग_गैम.html नामक एक पेज में स्थित है और इसमें गेम खेलने के लिए आवश्यक सब कुछ है (पूर्ण पृष्ठ एचटीएमएल, शैलियों और जावास्क्रिप्ट शामिल)। अब अगर मैं उस पृष्ठ को किसी अन्य पेज पर रूट इंडेक्स की तरह शामिल करना चाहता हूं, तो मुझे पता चलने वाला एकमात्र समाधान है जो शैली, जेएस और पूर्ण पृष्ठ एचटीएमएल को वोटिंग_गैम.html से बाहर निकालना है, केवल गेम चलाने के लिए आवश्यक एचटीएमएल को छोड़ना । जब मैं अब इंडेक्स बना रहा हूं, तो मैं htmling कोging_game.html से आयात करूंगा लेकिन मुझे अलग-अलग शैली और जावास्क्रिप्ट आयात करना होगा। इसका मतलब है कि मुझे हर पृष्ठ को दो बार बनाना है, जो मुझे दो बार काम करने की ज़रूरत है। यह प्रक्रिया पूरी जगह पर छोटी फाइलें भी छोड़ देती है, क्योंकि मैं लगातार रिफैक्टरिंग कर रहा हूं और यह विकास को केवल एक बहीखाता दुःस्वप्न बनाता है।

ऐसा करने का एक तरीका होना चाहिए और संगठित रहना है, लेकिन मुझे ऐसा करने का सबसे अच्छा तरीका समझने में आपकी मदद की ज़रूरत है।

धन्यवाद,

फिल

संपादित करें: एम्बेडेड पेज भी, या एक ही माता-पिता के भीतर अन्य एम्बेडेड पृष्ठों के साथ अपनी मूल पेज (एक यह में एम्बेड किया जा रहा है) के साथ संवाद करने में सक्षम होना चाहिए (माता-पिता के बच्चे बात करने में सक्षम होना चाहिए। इसलिए जब कोई एम्बेडेड गेम खेलता है, तो वे अंक अर्जित करते हैं, जो किसी दूसरे भाग पर दिखाना चाहिए, जो उपयोगकर्ताओं को वर्तमान बिंदुओं को प्रतिबिंबित करने में अपडेट करेगा।

यह "स्कोर बोर्ड" एक अलग विजेट/पेज/ब्लूप्रिंट भी होगा जो एम्बेडेड किया जा सकता है और कुछ टुकड़ों की तलाश करेगा कार्य करने के लिए डेटा का।

उत्तर

1

एचटीएमएल के एक हिस्से का पुन: उपयोग करने के लिए, आप जिनजा के {% include %} टैग का उपयोग कर सकते हैं। यदि यह बहुत सीमित है, तो जिन्जा मैक्रोज़ भी उपयुक्त हैं। आप अपने मैक्रोज़ को एक अलग फ़ाइल में परिभाषित कर सकते हैं और {% import "path/to/macros.html" as my_macros %} के साथ आयात कर सकते हैं।

फ्लास्क-संपत्ति आपकी संपत्ति के संगठन के साथ मदद कर सकती है।

ब्लूप्रिंट्स का उपयोग करने के लिए, हाँ आपको उनका उपयोग करना चाहिए। लेकिन वे ज्यादातर पायथन कोड पर लागू होते हैं और एचटीएमएल टेम्पलेट्स को एक अलग दायरे में व्यवस्थित किया जाता है, इसलिए शायद उनका उपयोग यहां असंबंधित नहीं है।

हालांकि आप हमेशा सभी डुप्लिकेशन को हटा नहीं सकते हैं।यदि आपके गेम को सर्वर से उत्पन्न HTML के तीन दूरस्थ स्थानों को प्रभावित करने की आवश्यकता है, तो यह आपके टेम्पलेट में शामिल प्रत्येक टेम्पलेट में कॉपी करने के लिए टेम्पलेट कोड की बिट्स है।

संबंधित मुद्दे