[ad_1]
I am working on a simple web application with flask. I currently store the user’s logo in a database. I also have an edit form where users can update that logo and other data the problem is that when I try to update the file. My program just keeps showing loads of binary messages and I am unable to stop the problem my flask app keeps loading continuously until I quit the terminal completely. How can I update a user logo, please?
Here is what the binary messages look like:
The binary messages loads continually without stopping
Below are my files:
app.py
@app.route("/update-account", methods=["POST"])
def update_user_account():
username = request.values["user"]
user = User.query.filter_by(username=username).first()
logo = Logo.query.filter_by(username=username).first()
new_username = request.form.get("username")
new_password = request.form.get("password")
new_logo= request.files["logo"]
if new_password != user.password:
...
if new_username != user.username:
...
if new_logo.filename != "":
logo.filename = new_logo.filename
logo.data = new_logo.read() # <----- where it takes forever
logo.users = user
user.logo= logo
db.session.add(logo)
return render_template(
"manage_profile.html",
user=user,
logo=logo,
)
logo.py
class Logo(db.Model):
__tablename__ = "logo"
id = db.Column(db.Integer, primary_key=True)
filename = db.Column(db.String(100))
data = db.Column(db.LargeBinary)
username = db.Column(db.String(100), db.ForeignKey("users.username"))
users = db.relationship("User", back_populates="logo", uselist=False)
def __repr__(self) -> str:
return "<Logo (filename="{}", data={})>".format(self.filename, self.data)
users.py
class User(UserMixin, db.Model):
__tablename__ = "users"
username = db.Column(db.String(100), primary_key=True)
password = db.Column(
db.String(200), primary_key=False, unique=False, nullable=False
)
logo = db.relationship("Logo", back_populates="users", uselist=False)
jinja template
<div class="col-md-12">
<label class="labels">Change Logo</label>
<input
type="file"
id="logo"
name="logo"
accept="image/*"
title="Only images are allowed"
class="form-control"
value={{logo.filename}}>
</div>
[ad_2]