File¶Le module django.core.files et ses sous-modules contiennent les classes intégrées pour la gestion de base des fichiers dans Django.
File¶The File class 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.
Les objets File possèdent les attributs et méthodes suivants :
Le nom du fichier, comprenant le chemin relatif du réglage MEDIA_ROOT.
The underlying file object that this class wraps.
Soyez prudent avec cet attribut dans les sous-classes.
Some subclasses of File, including
ContentFile and
FieldFile, may replace this
attribute with an object other than a Python file
object. In these cases, this attribute may itself be a
File subclass (and not necessarily the same subclass).
Whenever possible, use the attributes and methods of the subclass
itself rather than the those of the subclass’s file attribute.
Le mode lecture/écriture du fichier.
Open or reopen the file (which also does File.seek(0)).
The mode argument allows the same values
as Python’s built-in open(). *args and **kwargs
are passed after mode to Python’s built-in open().
Lors de la réouverture d’un fichier, mode écrase le mode avec lequel le fichier a été initialement ouvert ; None signifie que le mode initial doit être utilisé pour la réouverture.
Vous pouvez l’utiliser comme un gestionnaire de contexte, par ex. with file.open() as f:.
Lit le fichier par itération en renvoyant des blocs (« chunks »)de la taille indiquée. La valeur par défaut de chunk_size est 64 Ko.
C’est particulièrement utile pour les gros fichiers car cela permet de les lire en flux à partir du disque en évitant de stocker la totalité du fichier en mémoire.
Renvoie True si la taille du fichier nécessite de le partitionner en plusieurs blocs pour le lire en entier, en fonction de la taille chunk_size.
En plus des méthodes mentionnées, File expose les attributs et méthodes suivants de son objet file: encoding, fileno, flush, isatty, newlines, read, readinto, readline, readlines, seek, tell, truncate, write, writelines, readable(), writable() et seekable().
ContentFile¶La classe ContentFile hérite de File, mais contrairement à celle-ci, elle n’agit que sur du contenu de type chaîne (octets aussi admis), plutôt que sur un vrai fichier. Par exemple :
from django.core.files.base import ContentFile
f1 = ContentFile("esta frase está en español")
f2 = ContentFile(b"these are bytes")
ImageFile¶Django fournit une classe intégrée tout exprès pour les images. django.core.files.images.ImageFile hérite de tous les attributs et méthodes de File, et offre en plus les éléments suivants :
Tout fichier File associé à un objet (comme pour Car.photo ci-dessous) possède également quelque méthodes supplémentaires :
Enregistre un nouveau fichier avec le nom de fichier et le contenu indiqués. Cela ne remplacera pas le fichier existant, mais un nouveau fichier sera créé et l’objet sera mis à jour pour pointer vers ce fichier. Si save vaut True, la méthode save() du modèle sera appelée après l’enregistrement du fichier. C’est-à-dire que ces deux lignes :
>>> car.photo.save("myphoto.jpg", content, save=False)
>>> car.save()
sont équivalentes à :
>>> car.photo.save("myphoto.jpg", content, save=True)
Notez que le paramètre content doit être soit une instance de File , soit une sous-classe de File, comme par exemple ContentFile.
Enlève le fichier de l’instance de modèle et supprime le fichier concerné. Si save vaut True, la méthode save() du modèle sera appelée après la suppression du fichier.
déc. 03, 2025