【发布时间】:2023-04-02 18:37:02
【问题描述】:
我正在尝试在我的场地表中搜索以资助匹配的名称,奇怪的是我的查询结果是 SQL 的翻译!!!我不知道为什么会这样,如果有人知道请教我为什么?
这是我的代码:
响应变量是一个虚拟变量。
term_to_search_by = request.form.get('search_term')
list_of_matches = Venue.query.filter(Venue.name.ilike(f'%{term_to_search_by}%'))
print(list_of_matches)
response={
"count": 1,
"data": [{
"id": 2,
"name": "The Dueling Pianos Bar",
"num_upcoming_shows": 0,
}]
}
return render_template('pages/search_venues.html', results=response, search_term=request.form.get('search_term', ''))
这是它打印的内容:
127.0.0.1 - - [14/Dec/2020 17:59:46] "POST /venues/search HTTP/1.1" 200 -
SELECT venue.id AS venue_id, venue.name AS venue_name, venue.genres AS venue_genres, venue.website AS venue_website, venue.seeking_talent AS venue_seeking_talent, venue.seeking_description AS venue_seeking_description, venue.city AS venue_city, venue.state AS venue_state, venue.address AS venue_address, venue.phone AS venue_phone, venue.image_link AS venue_image_link, venue.facebook_link AS venue_facebook_link
FROM venue
WHERE venue.name ILIKE %(name_1)s
感谢您的宝贵时间!
【问题讨论】:
-
尝试`print(list_of_matches.all())` - 你需要通过调用
.all()或类似的方法来执行查询,否则它只是一个查询,所以打印它会打印出SQL。 -
你说的很对!!!!我不知道我是怎么错过的。谢谢
-
@afbigdad 写一个正确的答案
^^,正打算写一个
标签: python database postgresql flask sqlalchemy