【问题标题】:MongoEngine returns nothingMongoEngine 什么都不返回
【发布时间】:2021-05-05 17:33:39
【问题描述】:

我正在创建一个基本的烧瓶 Web 应用程序,并希望从我的 mongo 数据库中获取一些数据。在我的views.py 我有:

from app import app
from app.models import User


@app.route('/')
def index():
    return "Hello world"


@app.route("/users")
def about():
    users = User.objects()
    return users.to_json()

models.py:

from flask_mongoengine import MongoEngine
from app import db


class User(db.Document):
    snp = db.StringField(required=False)
    g = db.StringField(required=False)
    card = db.StringField(required=False)
    phone = db.StringField(required=False)
    passport = db.StringField(required=False)
    group = db.StringField(required=False)
    meta = {'collection': 'User'}

    def to_json(self):
        return {
            "name": self.snp
        }

当我输入http://127.0.0.1:5000/users 时,我得到[]。 Find 只返回我的 mongo 数据库中的集合 User 和两个文档:

{"_id":{"$oid":"6089d5d13dc15d0a2c5f607e"},"snp":"testov1 test1 testovich1","g":"f","card":"12345","phone":"8888888881","passport":"8888 48484848","group":"users"}

{"_id":{"$oid":"6089d5fd3dc15d0a2c5f607f"},"snp":"testov2 test2 testovich2","g":"m","card":"1676767","phone":"88566768881","passport":"8888 234343434","group":"users"}

与数据库的连接正确。 我是烧瓶和 mongoEngine 的新手。

【问题讨论】:

    标签: python-3.x mongodb flask mongoengine


    【解决方案1】:

    如果您打印用户,您将看到一个 list 'User' 对象,实际上当您尝试使用 User.objects() 获取所有用户时,结果是类型 ,所以调用 users.to_json() 是错误的,因为它不是 User 类的实例。

    但是,如果您只获得一个具有类似User.objects().first() 的用户,则结果将是“用户”类型,然后您可以调用 user.to_json()。

    【讨论】:

      猜你喜欢
      • 2012-06-18
      • 2018-09-10
      • 2017-02-14
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多