meaning python flask

python - meaning - Guardar la carga en el Frasco solo se guarda en la raíz del proyecto



flask wikipedia (1)

Cuando cargo un archivo nuevo, se guarda en la carpeta raíz de la aplicación, aunque especifiqué una UPLOAD_FOLDER diferente. ¿Por qué no funciona la configuración?

views.py :

from flask import render_template from flask import request, redirect, url_for,flash from werkzeug.utils import secure_filename from app import app import os APP_ROOT = os.path.dirname(os.path.abspath(__file__)) UPLOAD_FOLD = ''/Users/blabla/Desktop/kenetelli/htmlfi'' UPLOAD_FOLDER = os.path.join(APP_ROOT, UPLOAD_FOLD) app.config[''UPLOAD_FOLDER''] = UPLOAD_FOLDER @app.route(''/'') def tmrf(): return render_template(''main.html'') @app.route(''/uploader'', methods=[''GET'', ''POST'']) def upload_file(): if request.method == ''POST'': f = request.files[''file''] f.save(secure_filename(f.filename)) return ''file uploaded successfully''

__init__.py :

from flask import Flask UPLOAD_FOLDER = '''' ALLOWED_EXTENSIONS = set(''*.doc'') app = Flask(__name__) app.config.from_object(''config'') from app import views


UPLOAD_FOLDER no es una opción de configuración reconocida por Flask. f.save funciona en relación con el directorio de trabajo actual, que suele ser la raíz del proyecto durante el desarrollo.

Une el nombre de archivo seguro a la carpeta de carga y luego guárdalo en esa ruta.

f.save(os.path.join(app.config[''UPLOAD_FOLDER''], secure_filename(f.filename)))

Es mejor almacenar datos locales en la carpeta de la instancia, no en la raíz del proyecto. Flask ya sabe dónde está eso. Solo asegúrate de crear primero el directorio de la instance .

f.save(os.path.join(app.instance_path, ''htmlfi'', secure_filename(f.filename)))