Следует помнить, что функция
@app.route('/test/', methods=['GET','POST'])
def test():
будет вызываться ONCE только каждый раз, когда вы выполняете этот запрос ajax.Для того чтобы реализовать эту функциональность здесь, нашему приложению-колбе необходимо создать ВЕСЬ список пользователей, а затем вернуть ВЕСЬ список пользователей.
Функция должна возвращать только результат вызова render_template,который должен включать всех пользователей.Здесь происходит то, что наше «return (i) username» подвергается удару и возвращает первого пользователя еще до того, как наша render_template даже вызывается.
Другими словами, когда оператор return возвращается, функциянемедленно возвращает то, о чем мы сказали, а остальная часть функции никогда не выполняется.
Я немного изменил код
@app.route('/test/', methods=['GET','POST'])
def test():
#you're only returning one value like this
#user=None
#use a list to hold all the users returned from the query instead
users=[]
if request.method == "POST":
user=users.query.all()
for i in user:
#don't do this
#return (i.username)
#do this instead
username = i.username
users.append(username)
return render_template('test.html',users=users)
, затем в нашем HTML-шаблоне мы хотимперебрать возвращенный список и отобразить элемент для каждого из элементов имени пользователя.Что-то вроде следующего может помочь вам начать:
<h2>Usernames</h2>
{% for username in usernames %}
<span>{{username}}</span>
{% endfor %}
Надеюсь, это поможет вам