gpt4 book ai didi

python - 是否有 "if command"来识别我的 sqlalchemy sqlite 查询命令是否为空?

转载 作者:行者123 更新时间:2023-12-04 09:56:34 27 4
gpt4 key购买 nike

我在下面有这些代码:

many_posts = BlogPost.query.filter(or_((BlogPost.problem_name.ilike("%" + form.search.data + "%")),(BlogPost.text.ilike("%" + form.search.data + "%")))).order_by(BlogPost.date.desc()).paginate(page=page, per_page=10)

return render_template('blog_search_result.html', id_list=id_list, many_posts=many_posts, no_posts=no_posts)

这是一个 sqlalchemy 查询命令 它让我网站上的用户搜索/过滤和查询博客。但有时,他们提供的输入不在数据库中,我的网站也不会显示任何内容。因此,与其不显示任何内容,我想显示一段文字:“找不到与您的搜索相关的内容”。 我想知道是否有任何“if 语句”Python/Sqlalchemy 代码可以用来识别我的查询命令是否没有找到任何信息,然后显示上面的引用。 就像是:
        if many_posts is null:
no_posts= "Couldn't find relating problems with your search"

与 many_posts 连接的部分 HTML 代码:
    <h4>Search results<span class="iconify" data-icon="icons8:search" data-inline="false"></span>:</h4>
<p>{{ no_posts }}</p>


<div class="container row row-cols-1 row-cols-md-2 text-center">
{% for post in many_posts.items%}

<div class="card border-dark mb-3 " style="width: 20rem;">
<div class="card-body ">
<h7><a class="text-warning" href="{{ url_for('users.user_posts', username=post.creator.first_name+post.creator.middle_name+post.creator.last_name) }}"><img class="text-center rounded" src="{{ url_for('static', filename='profile_pics/'+ post.creator.profile_image) }}" width = "35" height = "35" alt=""> {{ post.creator.first_name}} {{ post.creator.middle_name }} {{ post.creator.last_name }}</a></h7>
<p></p>
<img class="text-center rounded responsive1" alt="" src="{{ url_for('static', filename='blog_pics/'+ post.blog_image) }}" width = "495" height = "250">
{# Need caution for post.blog_image on the code above #}
<p></p>
<h2><a class="card-tittle text-body problem" href="{{ url_for('blog_posts.blog_view', blog_validated_id=post.blog_id) }}">{{ post.problem_name[0:40]}}..</a></h2>
<p class="card-text">{{ post.text[0:100] }}</p>
<p><small class="text-muted">Posted on: {{ post.date.strftime('%Y-%m-%d') }}</small></p>
<a class="btn btn-warning" href="{{ url_for('blog_posts.blog_view', blog_validated_id=post.blog_id) }}">Read more</a>
</div>


我是编码初学者,如果您能帮助我,我将不胜感激。谢谢!

========================答案/解决方案======================== ==

我使用以下代码:

方法一:
 many_posts0 = BlogPost.query.filter(or_((BlogPost.problem_name.ilike("%" + form.search.data + "%")),(BlogPost.text.ilike("%" + form.search.data + "%")))).order_by(BlogPost.date.desc())

many_posts = many_posts0.paginate(page=page, per_page=10)
num_posts = many_posts0.count()
if num_posts == 0:
no_posts="Couldn't find relating problems"
else:
no_posts=''

return render_template('blog_search_result.html', id_list=id_list, many_posts=many_posts, num_posts=num_posts, no_posts=no_posts)


在 HTML 中,我使用:
<p>{{no_posts}}</p>


方法二:
many_posts = BlogPost.query.filter(or_((BlogPost.problem_name.ilike("%" + form.search.data + "%")),(BlogPost.text.ilike("%" + form.search.data + "%")))).order_by(BlogPost.date.desc()) 
no_posts = ''

if not many_posts.first():
no_posts= "Couldn't find relating problems with your search"
many_posts = many_posts.paginate(page=page, per_page=10)

最佳答案

不确定,但您可以尝试两件事:

也许查询的结果不等于 False如果没有返回行。空列表的计算结果为 False ,但查询结果可能是不同类型的对象,可能不会评估为 False。
转换为列表可能会有所帮助。

return render_template('blog_search_result.html', id_list=id_list, posts=list(posts))

用于调试目的。您可以添加以下内容。
打印/记录对理解很有帮助
print("Posts is ", posts, "and as bool it returns ", bool(posts))
return render_template('blog_search_result.html', id_list=id_list, posts=list(posts))

第一次反馈后

OK SqlAlchemy 的输出 paginate()不可迭代。 (你有没有尝试阅读分页的文档。它可能会提到是否有一些关于结果数量的信息)

以下可能适用于 SqlAlchemy(我没有时间尝试)
posts_to_show = BlogPost.query.filter(or_((BlogPost.problem_name.ilike("%" + form.search.data + "%")),(BlogPost.text.ilike("%" + form.search.data + "%")))).order_by(BlogPost.date.desc())

post_page = posts_to_show.paginate(page=page, per_page=10)

num_posts = posts.count() # there might be something better to find out if there is at least one post, but I don't know it

return render_template('blog_search_result.html', id_list=id_list, posts=posts_page, num_posts=num_posts)

关于python - 是否有 "if command"来识别我的 sqlalchemy sqlite 查询命令是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61904126/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com