У меня возникли проблемы с кажущимся простым запросом sqlalchemy с использованием Flask.Запросы Flask-SQLAlchemy
У меня есть таблица под названием «Ссылки», и внутри этой таблицы есть столбцы «id», «author_id», «link» и «group». Мой models.py выглядит следующим образом:
class Links(db.Model):
__tablename__='links'
id = db.Column(db.Integer, primary_key=True)
author_id = db.Column(db.Integer, db.ForeignKey('users.id'))
link = db.Column(db.String, unique=False, nullable=True)
group = db.Column(db.String, unique=False, nullable=False)
def __init__(self, author_id=None, link=None, group=None):
self.author_id = author_id
self.link = link
self.group = group
def __repr__(self):
return'<Link %r>' %(self.link)
Я хотел бы вернуть значения всех групп, связанные с пользователем, вошедший в приложение. Вот мой views.py файл:
@app.route('/members/', methods=['GET','POST'])
@login_required
def members():
error=None
form = PostLink(request.form, csrf_enabled = False)
uid = session['user_id']
link = "NULL"
groups = Links.query.filter_by(author_id=uid).all()
if request.method=='POST':
if form.validate_on_submit():
new_group = Links(
uid,
form.group.data,
link,
)
try:
db.session.add(new_group)
db.session.commit()
flash("You have created a group!")
except IntegrityError:
error = 'That group did not work, maybe it already exists?'
else:
flash_errors(form)
return render_template('members.html', form=form, error=error, link = link, groups=groups)
И мой 'members.html':
{% extends "base.html" %}
{% содержание блок%}
<p>Add New Group: {{ form.group }}</p>
<input id="link" type="hidden" name="link" value= {{ link }}/>
<p><input type="submit" value="Request"></p>
</form>
<br/>
{% for group in groups %}
<li><p>
{{ group }}
</p></li>
{% endfor %}
{% endblock %}
В настоящее время это просто возвращая список ссылок и групп в нечетном формате:
<Link u'link2'>
<Link u'linky'>
<Link u'linkymaybe'>
<Link u'madeit'>
<Link u'BLAH'>
Итак, суть моего вопроса заключается в том, как создать запрос с использованием SQLAlchemy для отображения всех групп, связанных с зарегистрированным пользователем (uid = session ['user_id']). Я довольно новичок в Flask, и эта проблема становится проблемой, поскольку Я пробовал несколько файлов filter_by и filter без всякой удачи.
Спасибо заранее!
Спасибо! Это отлично поработало. Еще один вопрос. Как я могу отфильтровать вывод, чтобы не отображать повторяющиеся группы? – jmbmxer