У меня есть два класса в моем models.py (Пользователь и Дневник).Пользователь содержит информацию о пользователе, а дневник содержит эмоции с примечанием.Когда я пытаюсь перебрать дневник, используя пользовательский объект, который является списком, использующим цикл for, он заходит в бесконечный цикл, который не показывает результат
models.py
from datetime import date
from flaskblog import db, login_manager
from flask_login import UserMixin
@login_manager.user_loader
def load_user(user_id):
return User.query.get(int(user_id))
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(20), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
password = db.Column(db.String(60), nullable=False)
diaries = db.relationship('Diary', backref='author', lazy=True)
def __repr__(self):
return f"User('{self.username}', '{self.email}')"
class Diary(db.Model):
id = db.Column(db.Integer, primary_key=True)
diary_date= db.Column(db.DateTime, nullable=False, default=date.today())
emotion = db.Column(db.String(10))
note = db.Column(db.Text)
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
def __repr__(self):
return f"Diary('{self.diary_date}', '{self.emotion}','{self.note}')"
rout.py гдеЯ использую дневник
@app.route("/account", methods=['GET', 'POST'])
@login_required
def account():
diaries=Diary.query.all()
form = UploadImage()
#picture_file=save_picture(form.picture.data)
if request.method == 'POST':
file = request.files[form.picture.name]
note=Diary(diary_date=date.today(), note=form.note.data, author=current_user)
db.session.add(note)
db.session.commit()
if file:
filename = secure_filename(file.filename)
file.save(os.path.join(app.root_path, 'static/pics', filename))
image_file = url_for('static', filename='pics/' + filename)
return render_template('account.html', title='Account',image_file=image_file, form=form)
#filename = 'http://localhost:5000/account' + filename
#return render_template('account.html', filename = filename,form=form)
return render_template('account.html', title='Account',form=form)
account.html
{% for diary in diaries %}
<div class="article-metadata">
<h2>{{ diary.author.username }}</h2>
<h2>{{ diary.diary_date.strftime('%Y-%m-%d') }}</h2>
<h2>{{ diary.emotion }}</h2>
<h2>{{ diary.note }}</h2>
</div>
{% endfor %}
После этого на экране ничего не печатается.Я пытался использовать cmd и использовать тот же цикл на БД.Это идет в бесконечном цикле
>>> user
User('hannah baker', 'baker.hannahkillme@gmail.com')
>>> diaries=Diary.query.all()
>>> diaries
[Diary('2019-01-28 00:00:00', 'None','Nothing specific happened today'), Diary('
2019-01-28 00:00:00', 'None','Day spent well'), Diary('2019-01-28 00:00:00', 'None','My college sucks')]
>>> for diary in diaries:
... print(diary.note)
...
Это должно напечатать заметки, которые у меня есть