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?
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.
No pude resolver el problema con la carga de matraces, pero seguí este video y me permitió hacer lo que quería hacer: https://www.youtube.com/watch?v=6WruncSoCdI
Está 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.
En flask_uploads.py
Cambiar
from werkzeug import secure_filename,FileStoragepara
from werkzeug.utils import secure_filename from werkzeug.datastructures import FileStorageTerminé 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.