Page.query.filter(Page.url.contains(url))函数定义?

时间:2017-01-09 04:31:56

标签: python sqlalchemy flask-sqlalchemy

在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

1 个答案:

答案 0 :(得分:0)

我认为你需要自己做更多的研究,但为了让你开始,这看起来像Flask-SQLAlchemy项目,它是SQLAlchemy库周围的Flask。您需要阅读的文档主要在SQLAlchemy和Flask-SQLAlchemy中。

Page似乎是数据库表的ORM映射。 filter / filter_by methods封装了SQL SELECT功能。 contains method封装了SQL LIKE %<OTHER>%功能。