मैं एक Django आधारित वेबसाइट लिख रहा हूं, लेकिन एक साधारण पाठ फ़ाइल की सेवा करने की आवश्यकता है। क्या यह स्थिर निर्देशिका में डालने और Django को छोड़कर ऐसा करने का सही तरीका है?मैं Django से एक टेक्स्ट फ़ाइल कैसे सेवा करूं?
उत्तर
यदि फ़ाइल स्थैतिक है (django ऐप द्वारा उत्पन्न नहीं) तो आप इसे स्थिर निर्देशिका में डाल सकते हैं।
यदि इस फ़ाइल की सामग्री Django द्वारा उत्पन्न की जाती है तो आप इसे text/plain
के साथ mimetype के रूप में एक HttpResponse में वापस कर सकते हैं।
content = 'any string generated by django'
return HttpResponse(content, content_type='text/plain')
तुम भी प्रतिक्रिया की Content-Disposition
की स्थापना करके फाइल करने के लिए एक नाम दे सकते हैं।
filename = "my-file.txt"
content = 'any string generated by django'
response = HttpResponse(content, content_type='text/plain')
response['Content-Disposition'] = 'attachment; filename={0}'.format(filename)
return response
['पीडीएफ फाइलों के लिए प्रलेखन में एक उदाहरण है] (https://docs.djangoproject.com/en/dev/howto/outputting-pdf/), जो दिखाता है कि एक Django पर एक गैर-HTML mimetype कैसे सेट करें' HttpResponse'। –
सामग्री @luc से उत्पन्न फ़ाइल में एक विशिष्ट फ़ाइल नाम जोड़ना संभव होगा ?? – chuseuiti
@chuseuiti हां, मैंने अपना जवाब अपडेट किया है – luc
मैं @luc से सहमत हैं, लेकिन एक और विकल्प X-Accel-Redirect
शीर्ष लेख का उपयोग करने के लिए है।
कल्पना कीजिए कि आपको बड़ी सुरक्षित सेवा (इसे देखने के लिए लॉगिन करना है) स्थिर फाइलें हैं। यदि आप फ़ाइल को स्थिर निर्देशिका में डालते हैं, तो इसकी पहुंच खुली है और कोई भी इसे देख सकता है। यदि आप फ़ाइल खोलकर Django में इसकी सेवा करते हैं और फिर इसकी सेवा करते हैं, तो बहुत अधिक आईओ और Django अधिक RAM का उपयोग करेगा क्योंकि इसे फ़ाइल को रैम में लोड करना होगा। समाधान एक दृश्य है, जो एक डेटाबेस के खिलाफ उपयोगकर्ता को प्रमाणीकृत करेगा, हालांकि फ़ाइल लौटने की बजाय, Django X-Accel-Redirect
हेडर को इसकी प्रतिक्रिया में जोड़ देगा। अब जब Django nginx के पीछे है, nginx इस हेडर को देखेगा और फिर यह संरक्षित स्थिर फ़ाइल की सेवा करेगा। यह बहुत बेहतर है क्योंकि Django से तुलनात्मक स्थिर फ़ाइलों की सेवा में nginx बहुत बेहतर और बहुत तेज़ है। Here nginx दस्तावेज़ हैं कि यह कैसे करें। आप अपाचे में भी इसी तरह की चीज कर सकते हैं, हालांकि मुझे हेडर याद नहीं है।
दिलचस्प जवाब। धन्यवाद – luc
मुझे AJAX के माध्यम से फ़ॉर्म के लिए टेक्स्ट टेम्पलेट प्राप्त करने के लिए एक समान आवश्यकता थी। मैं इस तरह के मॉडल पर आधारित दृश्य (Django 1.6.1) के साथ इसे लागू करने के लिए चुन:
from django.http import HttpResponse
from django.views.generic import View
from django.views.generic.detail import SingleObjectMixin
from .models import MyModel
class TextFieldView(SingleObjectMixin, View):
model = MyModel
def get(self, request, *args, **kwargs):
myinstance = self.get_object()
content = myinstance.render_text_content()
return HttpResponse(content, content_type='text/plain; charset=utf8')
गाया पाठ काफी छोटा और गतिशील मॉडल में अन्य क्षेत्रों से उत्पन्न है।
विभिन्न फ़ाइल प्रकारों पर नियंत्रण रखने के लिए अच्छा समाधान और शानदार तरीका। क्या आपके पास इसका आह्वान करने के लिए 'url_patten' प्रविष्टि का एक उदाहरण है? – nehemiah
मेरे पास यह url.py फाइलों में से एक में यह पैटर्न है: 'url (r '^ showfile/(? पी
- 1. मैं एक एसएमएस सेवा कैसे कार्यान्वित करूं?
- 2. मैं उद्देश्य-सी में एक टेक्स्ट फ़ाइल कैसे पार्स करूं?
- 3. मैं टेक्स्ट फ़ाइल में एक सबप्रोसेस कॉल कैसे पाइप करूं?
- 4. मैं एक टेक्स्ट फ़ाइल में गिट लॉग कैसे निर्यात करूं?
- 5. मैं एक बाइनरी फ़ाइल से पीडीएफ फ़ाइल कैसे उत्पन्न करूं?
- 6. मैं दक्षिण (Django) से एक ऐप को "अनवरोधित" कैसे करूं?
- 7. विंडोज सेवा से टेक्स्ट फ़ाइल कैसे पढ़ा जाए?
- 8. मैं टेक्स्ट फ़ाइल
- 9. पावरशेल: मैं कॉलम द्वारा टेक्स्ट फ़ाइल को कैसे क्रमबद्ध करूं?
- 10. मैं टर्मिनल से टेक्स्ट एडिटर कैसे आमंत्रित करूं?
- 11. मैं एक बाइनरी फ़ाइल कैसे विलय करूं?
- 12. मैं सीवीएस से एक फ़ाइल को कैसे चेकआउट करूं?
- 13. मैं एक पर्ल डीबीएम फ़ाइल कुशलता से कैसे खाली करूं?
- 14. मैं एक App.Config फ़ाइल से CultureInfo.CurrentCulture कैसे सेट करूं?
- 15. Django: मैं dUango-एक्सटेंशन से UUIDField का उपयोग कैसे करूं
- 16. मैं फॉपेन फ़ाइल संरचना से फ़ाइल हैंडल कैसे प्राप्त करूं?
- 17. मैं iSeries COBOL से वेब सेवा कैसे कॉल करूं?
- 18. मैं WPF में कॉम्बोबॉक्स से टेक्स्ट मान कैसे प्राप्त करूं?
- 19. मैं UITextField से एनएसएसटींग में टेक्स्ट कैसे प्राप्त करूं?
- 20. मैं डब्ल्यूसीएफ सेवा का परीक्षण कैसे करूं?
- 21. मैं लंबवत रूप से UITextField टेक्स्ट को कैसे केंद्रित करूं?
- 22. मैं एक नए धागे में सेवा कैसे शुरू करूं?
- 23. मैं एक WPF टेक्स्टबॉक्स में टेक्स्ट इनपुट अनुकरण कैसे करूं?
- 24. मैं एक .mdmp फ़ाइल का विश्लेषण कैसे करूं?
- 25. मैं पाइथन/Django मॉड्यूल कैसे स्थापित करूं?
- 26. मैं xsl: टेक्स्ट टैग के बीच टेक्स्ट कैसे प्रारूपित करूं?
- 27. मैं सी # से SQLite डीबी फ़ाइल से कैसे कनेक्ट करूं?
- 28. मैं `django-अधिसूचना` से अधिसूचनाएं कैसे प्रदर्शित करूं?
- 29. , मैं कैसे एक फ़ाइल
- 30. मैं फ्लास्क के साथ एक स्थिर एसवीजी फ़ाइल कैसे सेवा करूं?
हां, अगर फ़ाइल सादा पाठ (कोई गतिशील सामग्री नहीं है) यह सही है। –