在Python / Flask中阅读某人的代码时,我遇到了一句话:
results = Page.query.filter(Page.url.contains(url))
我已经搜索过但无法得到令人满意的答案。 query.filter和url.contains的功能是什么,以及它们在不同条件下返回的值,如果没有匹配或多个匹配或表不存在。页面是表的名称还是只是类的名称?
编辑:使用该行的功能
@pages.route('/<url>/', methods=('GET', 'POST'))
def url_view(url):
from app import get_locale
page = DataGetter.get_page_by_url('/' + url, get_locale())
return render_template('gentelella/guest/page.html', page=page)
def get_page_by_url(url, selected_language=False):
if selected_language:
results = Page.query.filter_by(language=selected_language).filter(Page.url.contains(url))
else:
results = Page.query.filter(Page.url.contains(url))
if results:
return results.first()
return results
答案 0 :(得分:0)
我认为你需要自己做更多的研究,但为了让你开始,这看起来像Flask-SQLAlchemy项目,它是SQLAlchemy库周围的Flask。您需要阅读的文档主要在SQLAlchemy和Flask-SQLAlchemy中。
Page
似乎是数据库表的ORM映射。 filter
/ filter_by
methods封装了SQL SELECT
功能。 contains
method封装了SQL LIKE %<OTHER>%
功能。