Objektet ”Fil¶
Modulen django.core.files och dess undermoduler innehåller inbyggda klasser för grundläggande filhantering i Django.
Klassen ”Fil¶
- class File(file_object, name=None)[source]¶
- Klassen - Fileär ett tunt hölje runt Pythons file object med några Django-specifika tillägg. Internt använder Django denna klass när den behöver representera en fil.- File-objekt har följande attribut och metoder:- name¶
- Namnet på filen inklusive den relativa sökvägen från - MEDIA_ROOT.
 - file¶
- Den underliggande filobjekt som denna klass omsluter. - Var försiktig med detta attribut i underklasser. - Vissa subklasser av - File, inklusive- ContentFileoch- FieldFile, kan ersätta detta attribut med ett annat objekt än ett Python file object. I dessa fall kan detta attribut i sig vara en- File-underklass (och inte nödvändigtvis samma underklass). När det är möjligt, använd attributen och metoderna för subklassen själv snarare än de för subklassens- file-attribut.
 - mode¶
- Läs-/skrivläge för filen. 
 - open(mode=None, *args, **kwargs)[source]¶
- Öppna eller återöppna filen (som också gör - File.seek(0)). Argumentet- modetillåter samma värden som Pythons inbyggda- open().- *argsoch- **kwargsskickas efter- modetill Pythons inbyggda- open().- När en fil öppnas på nytt kommer - modeatt åsidosätta det läge som filen ursprungligen öppnades med;- Noneinnebär att filen öppnas på nytt med det ursprungliga läget.- Den kan användas som en kontexthanterare, t.ex. - with file.open() as f:.
 - chunks(chunk_size=None)[source]¶
- Iterera över filen och få fram ”chunks” av en viss storlek. - chunk_sizeär som standard 64 KB.- Detta är särskilt användbart med mycket stora filer eftersom det gör att de kan strömmas från disken och undviker att lagra hela filen i minnet. 
 - multiple_chunks(chunk_size=None)[source]¶
- Returnerar - Trueom filen är tillräckligt stor för att kräva flera bitar för att få tillgång till allt innehåll med en viss- chunk_size.
 - Förutom de listade metoderna, - Fileföljande attribut och metoder för sitt- file-objekt:- encoding,- fileno,- flush,- isatty,- newlines,- read,- readinto,- readline,- readlines,- seek,- tell,- truncate,- write,- writelines,- readable(),- writable()och- seekable().
Klassen ”ContentFile” (innehållsfil)¶
- class ContentFile(content, name=None)[source]¶
- Klassen - ContentFileärver från- File, men till skillnad från- Filearbetar den med stränginnehåll (bytes stöds också), snarare än en faktisk fil. Till exempel:- from django.core.files.base import ContentFile f1 = ContentFile("esta frase está en español") f2 = ContentFile(b"these are bytes") 
Klassen ”ImageFile” (bildfil)¶
- class ImageFile(file_object, name=None)[source]¶
- Django tillhandahåller en inbyggd klass specifikt för bilder. - django.core.files.images.ImageFileärver alla attribut och metoder från- File, och tillhandahåller dessutom följande:
Ytterligare metoder för filer som är kopplade till objekt¶
Alla File som är associerade med ett objekt (som med Car.photo, nedan) kommer också att ha ett par extra metoder:
- File.save(name, content, save=True)¶
- Sparar en ny fil med det filnamn och innehåll som anges. Detta kommer inte att ersätta den befintliga filen, utan skapa en ny fil och uppdatera objektet så att det pekar på den. Om - saveär- Truekommer modellens metod- save()att anropas när filen har sparats. Det vill säga dessa två rader:- >>> car.photo.save("myphoto.jpg", content, save=False) >>> car.save() - är likvärdiga med: - >>> car.photo.save("myphoto.jpg", content, save=True) - Observera att argumentet - contentmåste vara en instans av antingen- Fileeller av en underklass av- File, t.ex.- ContentFile.
- File.delete(save=True)¶
- Tar bort filen från modellinstansen och raderar den underliggande filen. Om - saveär- Truekommer modellens metod- save()att anropas när filen har raderats.