Как напечатать все значения словаря из цикла, используя BeautifulSoup и Flask - PullRequest
0 голосов
/ 22 декабря 2019
def search():
    query = "xxx"
    r = requests.get('website?q=' + query)
    soup = BeautifulSoup(r.content, 'lxml')
    results=[]
    for row in soup.findAll('li', attrs = {'class':'res'}):
        result = {}
        result['urltext'] = row.a.text
        result['url'] = row.cite.text
        results.append(result)

        return render_template('site.html', urll = result['url'], urltext = result['urltext'])
    else:
        return render_template('start.html')

При таком использовании я получаю один результат в site.html, как будто цикл останавливается и получает первый результат и передает его в site.html. И я хочу, чтобы все результаты, которые он находит, были переданы.

def search():
    query = "xxx"
    r = requests.get('website?q=' + query)
    soup = BeautifulSoup(r.content, 'lxml')
    results=[]
    for row in soup.findAll('li', attrs = {'class':'res'}):
        result = {}
        result['urltext'] = row.a.text
        result['url'] = row.cite.text
        results.append(result)

        print (result['url'])

Использование print дает мне все результаты. Но это бессмысленно, если я не уроню идею render_template и напечатаю весь HTML с результатом ['url'] и результатом ['urltext'] каким-то образом.

...