繁体   English   中英

如何使用 flask_sqlalchemy 从 MySQL 获取 varchar 类型数据?

[英]How to fetch varchar type data from MySQL using flask_sqlalchemy?

我有一个 flask 应用程序,它使用flask_sqlalchemy package 与 MySQL db 交互。 我正在尝试使用以下查询获取where slug = 'my_slug_data' and is_published=false and is_delete=false数据。但我没有得到任何回复。

aPost = Posts.query.filter_by(slug=slug, is_published=True, is_delete=False)
print(aPost)

当我打印aPost时。 然后它显示在查询下方

SELECT posts.id AS posts_id, posts.created_by AS posts_created_by, posts.created_on AS posts_created_on, posts.updated_on AS posts_updated_on, posts.is_published AS posts_is_published, posts.is_delete AS posts_is_delete, posts.title AS posts_title, posts.slug AS posts_slug, posts.sub_title AS posts_sub_title, posts.content AS posts_content, posts.tags AS posts_tags
FROM posts
WHERE posts.slug = %(slug_1)s AND posts.is_published = true AND posts.is_delete = false

以下是帖子 model

class Posts(db.Model):
    #id, created_by, created_on, updated_on, is_published, is_delete, title, slug, sub_title, content, tags

    id = db.Column(db.Integer, primary_key=True)
    created_by = db.Column(db.Integer, nullable=False)
    created_on = db.Column(db.String(12), nullable=True)
    updated_on = db.Column(db.String(12), nullable=True)
    is_published = db.Column(db.Boolean, nullable=True)
    is_delete = db.Column(db.Boolean, nullable=True)
    title = db.Column(db.String(100), nullable=False)
    slug = db.Column(db.String(130), nullable=True, unique=True)
    sub_title = db.Column(db.String(150), nullable=True)
    content = db.Column(db.String(), nullable=False)
    tags = db.Column(db.JSON, nullable=True)

谁能指导我在查询中做错了什么?

尝试这个:

for obj in Posts.query.all():
    print(obj.id, obj.slug, obj.is_published, obj.is_delete)
print(Posts.query.filter_by(slug=slug))
print(Posts.query.filter_by(slug=slug, is_published=True))
aPost = Posts.query.filter_by(slug=slug, is_published=True, is_delete=False).first()
print(aPost)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM