首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python瓶Sqlalchemy Subst查询

Python瓶Sqlalchemy Subst查询
EN

Stack Overflow用户
提问于 2016-10-05 18:27:18
回答 1查看 481关注 0票数 1

我正在我的公司做一个internel搜索引擎,用python编写,使用烧瓶和sqlalchemy(sqlite)。我现在的问题是我很想。

A.)查询描述字段B的一定数量的信息。)更好的查询之前的50个字符和它之后。

非常类似于谷歌下的链接字段。如果您搜索某物,它将返回下面100个字的链接。

我正在阅读文档,发现sqlalchemy中没有mid()函数。我还注意到,sqlalchemy只支持max、min和avg sqlalchemy: get max/min/avg values from a table

函数的SQL文档http://docs.sqlalchemy.org/en/latest/core/functions.html

我试图实现一个查询,例如

代码语言:javascript
复制
links = Item.query(func.mid(Item.description, 0, 200).like('%helloworld%'))

我发布了sqlite语法Substr,并尝试了Item.query.filter(func.substr(Item.description,0,200) == '%helloworld%')

在sqlalchemy中有什么方法可以绕过这个问题吗?

我的代码:

代码语言:javascript
复制
from sqlalchemy.sql.functions import func

def mainSearch(searchterm):
    links = Item.query(func.mid(Item.title, 1, 3).Item.title.like('%e%'))
    return links

HTML/Jinja代码:

代码语言:javascript
复制
 {% for link in links.items %}

<div id="resultbox">

         <div id="linkTitle"><h4><a href="{{ link.link }}">{{ link.title }}</a></h4> </div>
         <div id="lastUpdated">Last Updated: {{ link.last_updated }} </div>
         <div id="linkLink">{{ link.link }}</div>
             <div id="linkDescription">{{ link.description | safe }}</div>
</div>

错误

TypeError:“BaseQuery”对象不可调用

我的数据库: Sqlite

我也想在sql中进行类似的查询:

代码语言:javascript
复制
SELECT MID(column_name,start,length) AS some_name FROM table_name; 

--总的来说,我试图对列描述中查询的数据执行此操作:

示例文本:

文章(简称ART)是一个词(前缀或后缀),与名词一起使用,以表示名词所指的类型。文章指定名词的语法限定性,在某些语言中扩展到体积或数值范围。在英语中的文章是和a/an,和(在某些情况下)一些。"an“和"a”是古英语"An“的现代形式,在盎格鲁方言中,an是Saxon方言中的"one”(比较"on“),并以"owan”的形式流传到现代苏格兰人中。"on“(诺曼人对"one”的回答)和" an“都保留到现代英语中,"one”用作数字,"an“(a,在以辅音开头的名词之前)作为一篇不确定的文章。

在许多语言中,文章是词性的一个特殊部分,它很难与其他词类结合起来。在英语中,文章经常被认为是一个更广泛的言语范畴的一部分,称为限定词,它将文章和指示词(如"this“和"that")结合在一起。

在使用冠词的语言中,除某些例外情况外,每个普通名词都以一定的确定性(如确定或不定)表示,就像许多语言用一定的语法数(例如单数或复数)表示每个名词一样。每一个名词都必须附有与其确定性相对应的冠词(如果有的话),而缺少一篇文章(被认为是零项)本身就说明了某种确定性。这与其他形容词和限定词形成鲜明对比,这些形容词和限定词通常是可选的。文章的这种强制性使它们成为许多语言中最常见的词之一--例如,在英语中,最常见的词是

文章的特点通常是明确的或不确定的。2有几种语言,加上发达的文章系统,可以区分其他的子类型。在每一种类型中,语言可能有各种形式的每一篇文章,根据语法属性,如性别,数字,或大小写,或根据相邻的声音。

到此

文章(简称ART)是一个词(前缀或后缀),与名词一起使用,以表示名词所指的类型。文章明确了名词的语法限定性,

因此,它不会通过抓取10万字长的文本来破坏数据库。我只需要第一个100

EN

回答 1

Stack Overflow用户

发布于 2016-10-05 19:19:54

这与mid函数无关。错误消息是'BaseQuery' object is not callable.,您在哪里调用BaseQuery?在此:

代码语言:javascript
复制
Item.query(...)

正确的咒语是:

代码语言:javascript
复制
db.session.query(func.mid(...))

代码语言:javascript
复制
Item.query.with_entities(func.mid(...))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39881240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档