Quiero crear un formulario que permita enviar una imagen con una descripción utilizando formularios de matraz. Traté de usar este video: https://www.youtube.com/watch?v=Exf8RbgKmhM
pero tuve problemas al iniciar app.py:
➜ website git:(master) ✗ python3.6 app.py Traceback (most recent call last): File "app.py", line 10, in <module> from flask.ext.uploads import UploadSet, configure_uploads, IMAGES ModuleNotFoundError: No module named 'flask.ext' Tuve que reemplazar flask.ext.uploads por flask_uploads pero ahora obtengo:
Traceback (most recent call last): File "app.py", line 10, in <module> from flask_uploads import UploadSet, configure_uploads, IMAGES File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask_uploads.py", line 26, in <module> from werkzeug import secure_filename, FileStorage ImportError: cannot import name 'secure_filename'Mis importaciones y configuraciones se ven así:
from datetime import datetime from flask_sqlalchemy import SQLAlchemy from flask import Flask, session, render_template, url_for, redirect, flash, request from wtforms import Form, fields,TextField, StringField, PasswordField, BooleanField,validators from wtforms.validators import InputRequired, Email, Length, DataRequired from flask_wtf import FlaskForm from flask_uploads import UploadSet, configure_uploads, IMAGES from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_userNo pude resolver este problema, ¿tienes alguna idea de qué puedo hacer?
No pude resolver el problema con la carga del matraz, pero seguí este video y me permitió hacer lo que quería hacer: https://www.youtube.com/watch?v=6WruncSoCdI
Según este problema , se trata de un error relacionado con la versión actual 1.0.0 de workzeug. Está fusionado pero aún no publicado en pypi. La solución alternativa conocida hasta ahora es degradar de werkzeug=1.0.0 a werkzeug==0.16.0
Entonces, para hacer eso, solo necesita ejecutar el comando:
pip install -U Werkzeug==0.16.0 Mirando en las notas de la versión de werkzeug hay una versión 0.16.1 , pero en el informe de errores no hay evidencia de que el uso de esa versión pueda ser de ayuda.
En flask_uploads.py
Cambiar
from werkzeug import secure_filename,FileStoragepara
from werkzeug.utils import secure_filename from werkzeug.datastructures import FileStorageEstá utilizando una versión rota de Flask-Uploads .
Desafortunadamente, el mantenedor del paquete decidió no lanzar una nueva versión del paquete para PyPi.
Puede usar Flask-Reuploaded como reemplazo directo, lo que soluciona su problema.
Terminé poniendo un
-e git://github.com/maxcountryman/flask-uploads.git#egg=elasticutils
en mi archivo requirements.txt para obtener la última versión de las cargas de matraz de git.