Django 2.1 - The File object

फ़ाइल ऑब्जेक्ट




django

फ़ाइल ऑब्जेक्ट

django.core.files मॉड्यूल और इसके django.core.files में Django में मूल फ़ाइल हैंडलिंग के लिए अंतर्निहित कक्षाएं हैं।

File वर्ग

class File(file_object) [source]

File क्लास कुछ Django- विशिष्ट परिवर्धन के साथ पायथन फ़ाइल ऑब्जेक्ट के चारों ओर एक पतली आवरण है। आंतरिक रूप से, Django इस वर्ग का उपयोग करता है जब इसे एक फ़ाइल का प्रतिनिधित्व करने की आवश्यकता होती है।

File ऑब्जेक्ट्स में निम्नलिखित विशेषताएँ और विधियाँ हैं:

name

MEDIA_ROOT से संबंधित पथ सहित फ़ाइल का नाम।

size

बाइट्स में फ़ाइल का आकार।

file

अंतर्निहित फ़ाइल ऑब्जेक्ट जो इस वर्ग को लपेटता है।

उपवर्गों में इस विशेषता से सावधान रहें।

FieldFile और FieldFile सहित File कुछ उपवर्ग इस विशेषता को एक पायथन फ़ाइल ऑब्जेक्ट के अलावा अन्य ऑब्जेक्ट से बदल सकते हैं। इन मामलों में, यह विशेषता स्वयं एक File उपवर्ग हो सकती है (और जरूरी नहीं कि वही उपवर्ग)। जब भी संभव हो, सबक्लास की file विशेषताओं के बजाय उप-वर्ग की विशेषताओं और विधियों का उपयोग करें।

mode

फ़ाइल के लिए रीड / राइट मोड।

open(mode=None) [source]

फ़ाइल खोलें या फिर खोलें (जो File.seek(0) भी करता है)। mode तर्क पायथन के अंतर्निहित open() के समान मूल्यों की अनुमति देता है।

किसी फ़ाइल को दोबारा खोलते समय, जो भी फाइल मूल रूप से खोली गई थी, वह मोड ओवरराइड करेगा; मूल मोड के साथ फिर से खोलने का None मतलब None है।

यह एक संदर्भ प्रबंधक के रूप में उपयोग किया जा सकता है, उदाहरण with file.open() as f: :।

Django 2.0 में बदला:

प्रसंग प्रबंधक समर्थन जोड़ा गया था।

__iter__() [source]

एक समय में एक लाइन की उपज फ़ाइल पर पाएं।

chunks(chunk_size=None) [source]

किसी दिए गए आकार की "विखंडू" की उपज फ़ाइल पर दें। chunk_size डिफ़ॉल्ट को 64 KB पर।

यह बहुत बड़ी फ़ाइलों के साथ विशेष रूप से उपयोगी है क्योंकि यह उन्हें डिस्क से स्ट्रीम करने की अनुमति देता है और पूरी फाइल को मेमोरी में स्टोर करने से बचता है।

multiple_chunks(chunk_size=None) [source]

यदि यह फ़ाइल पूरी तरह से बड़ी है तो इसकी सभी सामग्री को एक्सेस करने के लिए कई chunk_size की आवश्यकता होती है।

close() [source]

फ़ाइल बंद करें।

सूचीबद्ध विधियों के अलावा, File अपनी file ऑब्जेक्ट की निम्न विशेषताओं और विधियों को उजागर करती है: encoding , fileno , flush , isatty , newlines , read , readinto , readline , readlines , seek , tell , readline , readlines , readline , readlines readable() , writable() , और खोज seekable()

ContentFile वर्ग

class ContentFile(File) [source]

ContentFile वर्ग File से विरासत में मिला है, लेकिन File विपरीत यह एक वास्तविक फ़ाइल के बजाय स्ट्रिंग सामग्री (बाइट्स भी समर्थित) पर संचालित होता है। उदाहरण के लिए:

from django.core.files.base import ContentFile

f1 = ContentFile("esta frase está en español")
f2 = ContentFile(b"these are bytes")

ImageFile वर्ग

class ImageFile(file_object) [source]

Django विशेष रूप से छवियों के लिए एक अंतर्निहित वर्ग प्रदान करता है। django.core.files.images.ImageFile File की सभी विशेषताओं और विधियों को इनहेरिट करता है, और इसके अतिरिक्त निम्नलिखित प्रदान करता है:

width

पिक्सेल में छवि की चौड़ाई।

height

पिक्सेल में छवि की ऊँचाई।

ऑब्जेक्ट्स से जुड़ी फाइलों पर अतिरिक्त तरीके

कोई भी File जो किसी ऑब्जेक्ट से जुड़ी होती है (जैसा कि Car.photo , नीचे) के साथ कुछ अतिरिक्त तरीके भी होंगे:

File.save(name, content, save=True)

फ़ाइल नाम और दी गई सामग्री के साथ एक नई फ़ाइल बचाता है। यह मौजूदा फ़ाइल को प्रतिस्थापित नहीं करेगा, लेकिन एक नई फ़ाइल बनाएगा और उसे इंगित करने के लिए ऑब्जेक्ट को अपडेट करेगा। यदि save True , तो फाइल save() ही मॉडल का save() तरीका कहलाएगा। यही है, ये दो लाइनें हैं:

>>> car.photo.save('myphoto.jpg', content, save=False)
>>> car.save()

के बराबर हैं:

>>> car.photo.save('myphoto.jpg', content, save=True)

ध्यान दें कि content तर्क में File का एक उदाहरण या File का एक उपवर्ग होना चाहिए, जैसे कि ContentFile

File.delete(save=True)

मॉडल उदाहरण से फ़ाइल को निकालता है और अंतर्निहित फ़ाइल को हटाता है। अगर save True , तो फाइल डिलीट होते ही मॉडल का save() तरीका कहलाएगा।