Objektet ”FilLink to this heading
Modulen django.core.files och dess undermoduler innehåller inbyggda klasser för grundläggande filhantering i Django.
Klassen ”FilLink to this heading
- class File(file_object, name=None)Link to this definition
The
Fileclass is a thin wrapper around a Python file object with some Django-specific additions. Internally, Django uses this class when it needs to represent a file.File-objekt har följande attribut och metoder:- nameLink to this definition
Namnet på filen inklusive den relativa sökvägen från
MEDIA_ROOT.
- sizeLink to this definition
Filens storlek i byte.
- fileLink to this definition
The underlying file object that this class wraps.
- modeLink to this definition
Läs-/skrivläge för filen.
- open(mode=None, *args, **kwargs)Link to this definition
Open or reopen the file (which also does
File.seek(0)). Themodeargument allows the same values as Python’s built-inopen().*argsand**kwargsare passed aftermodeto Python’s built-inopen().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:.
- __iter__()Link to this definition
Iterera över filen och få fram en rad i taget.
- chunks(chunk_size=None)Link to this definition
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)Link to this definition
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 visschunk_size.
- close()Link to this definition
Stäng filen.
Förutom de listade metoderna,
Fileföljande attribut och metoder för sittfile-objekt:encoding,fileno,flush,isatty,newlines,read,readinto,readline,readlines,seek,tell,truncate,write,writelines,readable(),writable()ochseekable().
Klassen ”ContentFile” (innehållsfil)Link to this heading
- class ContentFile(content, name=None)Link to this definition
Klassen
ContentFileärver frånFile, men till skillnad frånFilearbetar 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)Link to this heading
- class ImageFile(file_object, name=None)Link to this definition
Django tillhandahåller en inbyggd klass specifikt för bilder.
django.core.files.images.ImageFileärver alla attribut och metoder frånFile, och tillhandahåller dessutom följande:- widthLink to this definition
Bildens bredd i pixlar.
- heightLink to this definition
Bildens höjd i pixlar.
Ytterligare metoder för filer som är kopplade till objektLink to this heading
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)Link to this definition
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ärTruekommer modellens metodsave()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 antingenFileeller av en underklass avFile, t.ex.ContentFile.
- File.delete(save=True)Link to this definition
Tar bort filen från modellinstansen och raderar den underliggande filen. Om
saveärTruekommer modellens metodsave()att anropas när filen har raderats.