首页 > 解决方案 > 从 MongoDB 集合中检索文档的问题

问题描述

我正在学习 Flask 框架并使用 MongoDB 作为我的后端数据库创建一个博客网站。我完全能够将我的数据作为文档保存到集合中,但是我无法从我的集合中检索保存的文档。

我正在为我的收藏使用 Azure Cosmos DB MongoDB API。请在下面找到必要的屏幕截图。

文档类定义

class UserDocument(Document, UserMixin):

username = StringField(min_length=2,max_length=100,required=True,unique=True)
email = EmailField(required=True,unique=True)
password = StringField(max_length=60,required=True,unique=True)
remember = BooleanField(required=True,default=True,unique=True)

meta = { 'collection' : 'UserDocument'}

注册路线 - 保存我的文档

@app.route("/register",methods= ["POST","GET"] )
def register():
    form = RegistrationForm()
    if form.validate_on_submit():
        if request.method == "POST":
            user = UserDocument()
            user.username = form.username.data
            user.email = form.email.data
            user.password = bcrypt.generate_password_hash(form.password.data).decode('utf-8')
            user.save()        
        flash(form.password.data,"Info")
    return render_template('register.html',form=form,title='Register')

MongoEngine 文档 - 用于检索 在此处输入图像描述

检索文档时的问题

@app.route("/login",methods= ["POST","GET"] )
def login():
    form = LoginForm()
    if form.validate_on_submit():
        if request.method == "POST":
            # table = client.db.MongoEngineDB
            # user = table.UserDocument.find_one({'email':form.email.data})
            user = UserDocument.objects(username=form.email.data)
            flash(user, "Info")
    return render_template('login.html',form=form,title='Login')

我不确定我在哪里搞砸了,我确实花了很多时间试图通过浏览大量内容来弄清楚自己,但无法找出根本原因。不确定这是否与任何缺少的模块或“UserDocument”类定义有关。

“flask-mongoengine”文档中也没有太多可用的信息。

标签: mongodbflaskmongoengineflask-mongoengine

解决方案


推荐阅读