2012-07-05 21 views
6

मैं एक Django ऐप लिख रहा हूं जिसमें उपयोगकर्ता छवियां अपलोड कर सकते हैं, और मुझे यकीन नहीं है कि उनकी सेवा कैसे करें। मैं दो तरह से देख सकते हैं:Django में उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलों को कैसे सेवा दें?

1- उन्हें स्थिर फाइल अपलोड: उन्हें अपने प्रोजेक्ट की निर्देशिका में static फ़ोल्डर में अपलोड करें, और उसके बाद python manage.py collectstatic चलाने के लिए, लेकिन मैं इस आदेश स्वचालित रूप से हर बार एक फ़ाइल को चलाने के लिए कैसे पता नहीं है अपलोड किया गया है, और ऐसा प्रसंस्करण प्रतीत होता है क्योंकि प्रत्येक बार सर्वर मेरे स्थिर ऐप में सबकुछ हटा देगा और पुनः लोड करेगा। मेरी urls.py में

2- उपयोग django.views.static.serve:

url(r'^media/(?P<path>.*)$', 'django.views.static.serve', { 
     'document_root': settings.MEDIA_ROOT, 
    }), 

लेकिन the doc उत्पादन के लिए यह सिफारिश नहीं करता।

उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलों को प्रदर्शित करने का अनुशंसित तरीका क्या है?

+0

मैं अपाचे या एक समान वेब सर्वर के माध्यम से उन फ़ाइलों की सेवा करने की एक अच्छा विचार लगता है। यदि आपको उपयोगकर्ता अनुमतियों जैसे अधिक नियंत्रण की आवश्यकता है, तो mod_xsendfile एक विकल्प हो सकता है। – Jingo

उत्तर

2

आपकी अपलोड की गई फ़ाइलें MEDIA_ROOT पर जाएं और MEDIA_ROOT का उपयोग करके सेवा दी जा सकती है। आपको इन पैरामीटर को settings.py में सेट करने की आवश्यकता है।

आपका विकास आप उन्हें सेवा कर सकते हैं हालांकि django dev सर्वर, लेकिन आप इसे अपाचे या अन्य सर्वर से सेवा के लिए कॉन्फ़िगर कर सकते हैं।

देखें Django managing stored files

+0

क्या आपके पास अपाचे से सेवा करने के लिए इसे कॉन्फ़िगर करने के बारे में कोई उदाहरण है? – jul

+0

उसी कॉन्फ़िगरेशन का उपयोग करें जिसका उपयोग आप अपनी स्थिर फ़ाइलों के लिए कर रहे हैं। या आप सामान्य रूप से फ़ाइलों को सेवा देने के लिए अपाचे को कॉन्फ़िगर करने के तरीके से पूछ रहे हैं? – scytale

+0

मैं वेबफैक्शन होस्टिंग का उपयोग कर रहा हूं और मैंने http://docs.webfaction.com/software/django/getting-started.html में दिए गए स्थिर मीडिया की सेवा के लिए निर्देशों का पालन किया। यह 'django.contrib.staticfiles' के साथ उपयोग के लिए है, लेकिन मुझे एक और निर्देशिका की आवश्यकता है जिसमें मैं फ़ाइलों को अपलोड कर सकता हूं और उन्हें 'django.contrib.staticfiles' का उपयोग किए बिना सेवा कर सकता हूं। मैं वेबफैक्शन विशिष्ट मंच में पूछूंगा। धन्यवाद। – jul

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

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