में निर्देशिका निर्देशिका फ़ाइल सामग्री सूचीबद्ध करें मैं सिर्फ पाइथन & Django सीख रहा हूँ। (यहां योगदान देने वाले हर किसी के लिए धन्यवाद - यह एक अमूल्य संसाधन रहा है!)एक Django टेम्पलेट
एक प्रतीत होता है कि मूलभूत चीज़ जो मुझे परेशानी हो रही है, स्थिर फाइलों की एक साधारण सूची प्रस्तुत कर रही है (मेरे पर एक एकल भंडार निर्देशिका की सामग्री कहें सर्वर) डाउनलोड करने योग्य लिंक की एक सूची के रूप में। इस सुरक्षित है या नहीं एक और सवाल है, लेकिन लगता है कि मैं यह कर करना चाहते हैं ...
इस पोस्ट में मुझे सही दिशा में चलाने में मदद की: Python directory list returned to Django template
यह कोड स्निपेट 'myfiles' में फ़ाइल नाम आउटपुट यदि प्रॉम्प्ट से चलाया जाता है:
path= os.path.dirname(os.path.abspath(__file__))
myfiles = os.path.join(path, 'myfiles')
os.chdir(myfiles)
for files in os.listdir("."):
print files
लेकिन मैं इन फ़ाइलों को Django टेम्पलेट में कैसे पास करूं और लिंक की एक सूची कैसे उत्पन्न करूं? मुझे लगता है कि मुझे इसे किसी भी प्रकार का पाइथन डिक्शनरी/टुपल बनाना संभव हो सकता है, इसे टेम्पलेट वैरिएबल के रूप में पास करें और इसे लूप में प्रस्तुत करें?
क्या मुझे यह काम करने के लिए मेरी urls.py फ़ाइल में एक प्रविष्टि जोड़नी है? कुछ इस तरह?
(r'^myfiles/(?P<path>.*)$', 'django.views.static.serve', {'document_root': os.path.join(os.path.dirname(__file__), 'myfiles'), 'show_indexes': True}),
आपकी मदद के लिए धन्यवाद! मैं बस सीख रहा हूं और मैं वास्तव में यह नहीं समझ सकता कि मौजूदा कोड स्निपेट से ऑनलाइन इसे कैसे किया जाए।
संपादित करें: यह क्या मैं अपने views.py में मिल गया है है: (आप '\\' है कि मैं एक विंडोज सिस्टम पर कर रहा हूँ से ध्यान देंगे)
def myfiles_page(request):
path = os.path.dirname(os.path.abspath(__file__))
myfiles = os.path.join(path, 'myfiles\\')
os.chdir(myfiles)
x = 0
d = {}
for file in os.listdir("."):
d[x] = (myfiles + file)
x = x + 1
variables = RequestContext(request, {
'user' : request.user,
'filedict' : d,
})
return render_to_response('myfiles_page.html', variables)
यह मैं कैसे है यह एक टेम्पलेट में प्रदर्शित करने के लिए मिलता है कोशिश कर रहा था करने के लिए: (Django documentation के अनुसार)
{% for key, value in filedict %}
{{ key }}: {{ value }}
{% endfor %}
लेकिन 'filedict' अभी भी टेम्पलेट में कुछ भी दिखाई नहीं दे रहा। कोई विचार?
+1। –
प्रतिक्रिया स्पेसमैन के लिए धन्यवाद - लेकिन मेरे लिए सबसे कठिन हिस्सा वास्तव में os.listdir से dicts की एक सूची बनाने के लिए views.py फ़ंक्शन लिख रहा है, जहां प्रत्येक dict का नाम और यूआरएल होता है। मुझे पता है कि यह बुनियादी है, लेकिन वहां कोई विचार है? – fieryred
क्या मैं के साथ समाप्त हो गया: डीईएफ़ create_filedict (निर्देशिका): \t x = 0 \t d = {} \t os.listdir में फ़ाइल (निर्देशिका) के लिए: \t \t घ [x] = (फाइल) \t \t x = x + 1 \t वापसी {'dict': d, 'size': x} – fieryred