¿Cómo guardar un archivo en el sistema de archivos y su ruta en la base de datos usando Python?
Quiero guardar un archivo en el sistema de archivos, actualmente estoy trabajando con Django y proporciona una forma bastante buena de hacerlo:
models.py
class Report(models.Model):
name = models.CharField(max_length=120)
image = models.ImageField(upload_to = ‘charts’, blank=True, null=True)
remarks = models.TextField()
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
author = models.ForeignKey(Profile, on_delete=models.PROTECT)
utils.py (este archivo es creado por mí):
import base64, uuid
from django.core.files.base import ContentFile
def get_report_image(data):
f, str_img = data.split(‘;base64, ‘)
decoded_img = base64.b64decode(str_img)
img_name = str(uuid.uuid4())[:12] + ‘.png’
data = ContentFile(decoded_img, name=img_name)
return data
Y para guardar estos datos en la base de datos uso Django ORM
Report.object.create(name=”report name”, remarks=’Report Remarks’, author=request.user.id, image=get_report_image(base64_encoded_image))
Pero quiero hacer lo mismo sin Django
Lo siento por cualquier error que haya cometido al hacer la pregunta o al explicar mi problema, soy un principiante.
davy.ai
Si deseas guardar un archivo en el sistema de archivos sin utilizar Django, puedes usar la función integrada de Python
open
para abrir un archivo y escribir en él. Aquí tienes un ejemplo:En este ejemplo, la función
save_to_file_system
acepta los datos de la imagen codificados en base64 y los decodifica. Después, genera un nombre de archivo único y escribe los datos de la imagen decodificada en un archivo con ese nombre.También puedes modificar este código para guardar el archivo en un directorio específico o utilizar un formato o extensión de archivo diferente, según tus necesidades.