क्या मैं इसे django में कर सकता हूँ? मॉडलों बनाम सीएमएस के रूप में पृष्ठों के साथ व्यवस्थापक?

आज मैं सिर्फ ट्रेन में था और django सीएमएस और व्यवस्थापक के बारे में सोचने के लिए कुछ खाली समय था।

क्या मैं पृष्ठों को इस तरह के मॉडल के रूप में परिभाषित कर सकता हूं:

class ArticlePage(models.Model):
  slug = models.TextField()
  content = models.TextField()
  online  = models.BooleanField()
  etc... 

और फिर dzango व्यवस्थापक में इस मॉडल को संपादित करें? क्योंकि, मुझे लगता है, डीजेंगो सीएमएस भी इस तरह से, कम या ज्यादा काम करेगा, है ना?

क्या यह ठीक रहेगा?

जहां मैं अटक गया हूं कि मैं नहीं जानता कि उन पृष्ठों के लिए गतिशील यूआरएल कैसे सेट करें, क्योंकि मुझे इसके लिए urls.py स्पर्श करना होगा, है ना?

0

1 उत्तर

सैद्धांतिक रूप से आप एक दृश्य बना सकते हैं जिसमें यूआरएल के रूप में वाइल्डकार्ड है। और उसके बाद आलेख पृष्ठ में विभिन्न वास्तविक रूप से उपयोग किए गए यूआरएल देखें।

def pageView(request, url):
    page = ArticlePage.objects.get(slug=url)
    ...
    return page.content

यूआरएल के रूप में निर्दिष्ट के साथ:

urlpatterns += patterns('articles.views',
    (r'^(?P.+?)/$', 'pageView'),
) #Catch all URLs not yet matched and attempt to find them in the database.

आपके urls.py के अंत में।

और फिर आप वास्तविक सामग्री और व्हाट्नॉट बनाने के लिए किसी प्रकार के HTML संपादक का उपयोग कर सकते हैं।

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

हालांकि, आम तौर पर एक वेबसाइट बोलने में कुछ संरचना होती है। ब्लॉग पोस्ट, टिप्पणियां, चुनाव, उपयोगकर्ता पंजीकरण और अन्य इंटरैक्टिव पृष्ठों की तरह कुछ। उन पृष्ठों को एचटीएमएल वाले डेटाबेस फ़ील्ड में वर्णित नहीं किया जा सकता है।

यद्यपि यदि आप वास्तव में ऐसा करने के लिए प्रबंधन करते हैं तो मुझे आपकी सैनिटी के लिए डर है क्योंकि यह एक दर्दनाक और अजीब सड़क होनी चाहिए।

उम्मीद है की यह मदद करेगा।

Update: If you want to show a static HTML only page you normally just refer to them directly from the urls.py. Generally very few HTML is directly stored in databases. Most often you just store data in the database. If HTML is heavily being modified/saved/created/served from the CMS you just store it as an HTML file somewhere on the webserver.

यद्यपि कोई निश्चित रूप से डेटाबेस में HTML पृष्ठों को रखने के कारणों के बारे में सोच सकता है, लेकिन आपको ऐसा क्यों नहीं करना चाहिए इसके बराबर कई कारण हैं। यह सब समस्या के विनिर्देशों के लिए नीचे आता है। जैसे यदि आप किसी उपयोगकर्ता को लिंक/बोल्डफेस/इटालिक्स इत्यादि के साथ कोई टिप्पणी बनाने की अनुमति देते हैं तो आप डीबी में शब्द या//word//को सहेज सकते हैं और इसे हर बार पार्स कर सकते हैं। या आप इसे एक बार पार्स कर सकते हैं और HTML को डेटाबेस में संग्रहीत कर सकते हैं ताकि आपको हर बार इसे पार्स न करना पड़े।

बड़े पृष्ठों के लिए भी यही जाता है, हालांकि आम तौर पर सीएमएस के माध्यम से हाथों से टाइप करने के लिए उनके पास बहुत अधिक मार्कअप होता है।

एक HTML पृष्ठ को सीधे urls.py के माध्यम से सेवा देने के लिए:

जैसे

from django.views.generic import TemplateView

urlpatterns = patterns('',
    (r'^foo/$', TemplateView.as_view(template_name='foo.html')),
)

Source: How do I go straight to template, in Django's urls.py?

1
जोड़ा
धन्यवाद दोस्त, .. एक और सवाल, django सीएमएस स्टोर एचटीएमएल पेज डीबी में भी करता है? कोई अधिकार नहीं?
जोड़ा लेखक doniyor, स्रोत
वाह, बहुत अच्छा, धन्यवाद दोस्त
जोड़ा लेखक doniyor, स्रोत
आम तौर पर यदि आप एक छोटा HTML पृष्ठ बनाते हैं तो आप उनको urls.py के माध्यम से देखें। मैंने जवाब में एक उदाहरण जोड़ा है।
जोड़ा लेखक EWit, स्रोत