MEDIA_ROOT और फ़ाइल अपलोड
उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलें स्वीकार और संग्रहीत करें
MEDIA_ROOT और फ़ाइल अपलोड, CoddyKit पर Django Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Django Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Django Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
स्थिर बनाम मीडिया
स्थिर फ़ाइलें आपके कोड के साथ आती हैं। मीडिया फ़ाइलें आपके उपयोगकर्ता रनटाइम पर अपलोड करते हैं, जैसे अवतार या दस्तावेज़, और इनके लिए अलग जगह चाहिए।
MEDIA_ROOT सेटिंग
MEDIA_ROOT डिस्क पर वह पूर्ण फ़ोल्डर है जहाँ Django हर अपलोड की गई फ़ाइल सहेजता है। यह आपके स्रोत कोड ट्री के बाहर रहता है।
MEDIA_ROOT = BASE_DIR / 'media'MEDIA_URL सेटिंग
MEDIA_URL वह सार्वजनिक उपसर्ग है जिसका उपयोग ब्राउज़र अपलोड की गई फ़ाइल माँगने के लिए करते हैं, ठीक वैसे ही जैसे स्थिर परिसंपत्तियों के लिए STATIC_URL का उपयोग होता है।
MEDIA_URL = '/media/'FileField जोड़ें
अपलोड स्वीकार करने के लिए अपने मॉडल में FileField दें। Django फ़ाइल को डिस्क पर सहेजता है और डेटाबेस में केवल उसका पथ रखता है।
class Resume(models.Model):
doc = models.FileField(upload_to='resumes/')upload_to पथ
upload_to तर्क MEDIA_ROOT के अंदर का एक उप-फ़ोल्डर है। अपलोड को व्यवस्थित रखने के लिए इसका उपयोग करें, जैसे सभी बायोडाटा को एक साथ रखना।
गतिशील upload_to
जब पथ instance पर निर्भर हो, तब function को upload_to में दें, जैसे हर उपयोगकर्ता की फ़ाइलों के लिए अलग फ़ोल्डर बनाना।
def user_dir(instance, filename):
return f'user_{instance.user.id}/{filename}'फ़ॉर्म को enctype चाहिए
फ़ाइलें अपलोड करने वाले HTML फ़ॉर्म में enctype को multipart/form-data पर सेट करना आवश्यक है, वरना ब्राउज़र फ़ाइल का एक भी बाइट नहीं भेजता।
<form method="post" enctype="multipart/form-data">request.FILES पढ़ें
अपलोड किए गए बाइट request.POST में नहीं आते। वे request.FILES में पहुँचते हैं, जिसे बाँधने के लिए आप अपने फ़ॉर्म में देते हैं।
form = ResumeForm(request.POST, request.FILES)URL प्राप्त करें
सहेजे जाने के बाद, हर फ़ाइल फ़ील्ड एक .url गुण उपलब्ध कराता है, जो template में डालने योग्य MEDIA_URL लिंक बनाता है।
<a href="{{ resume.doc.url }}">Download</a>अपलोड की जाँच करें
कच्चे अपलोड पर कभी भरोसा न करें। हानिकारक फ़ाइलों को रोकने के लिए अपने फ़ॉर्म की clean विधि में फ़ाइल का आकार और प्रकार सीमित करें। 🔒
मीडिया को निजी रखें
MEDIA_ROOT आपके रिपॉज़िटरी के बाहर होना चाहिए और इसे collectstatic द्वारा कभी सर्व नहीं किया जाना चाहिए। उपयोगकर्ता की फ़ाइलें और कोड स्पष्ट रूप से अलग रहें।
त्वरित जाँच
आइए जाँचें कि view में अपलोड की गई फ़ाइल का डेटा कहाँ पहुँचता है।
पुनरावलोकन
आपने सीखा कि MEDIA_ROOT उपयोगकर्ता के अपलोड रखता है, FileField और upload_to उन्हें व्यवस्थित करते हैं, और request.FILES बाइट लेकर आता है। 📁
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “MEDIA_ROOT और फ़ाइल अपलोड” पाठ निःशुल्क है?
हाँ — Django Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “MEDIA_ROOT और फ़ाइल अपलोड” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Django Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“MEDIA_ROOT और फ़ाइल अपलोड” में मैं क्या सीखूँगा?
उपयोगकर्ता द्वारा अपलोड की गई फ़ाइलें स्वीकार और संग्रहीत करें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Django Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Django Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Django Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“MEDIA_ROOT और फ़ाइल अपलोड” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Django Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Django Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- STATICFILES और static Tag
- Production के लिए collectstatic
- MEDIA_ROOT और फ़ाइल अपलोड
- ImageField और अपलोड प्रदर्शित करना