标签: flask-mongoengine

WTForms中的Mongoengine,Flask和ReferenceField

Hy大家,我正在实现一个Flask/MongoDB项目,因为我是这个世界的新手,我已经按照本页的教程:http: //docs.mongodb.org/ecosystem/tutorial/write-a-tumblelog -application与-烧瓶-mongoengine /

之后,我开始编写自己的应用程序代码,这是代码的一部分:

楷模:

class Generic(db.Document):
    descrizione = db.StringField(max_length=255, required=True)

    meta = {
        'allow_inheritance': True,
        'indexes': [
            {'fields': ['descrizione'], 'unique': True}
        ]
    }

class Category(Generic):
    def __call__(self, *args):
        pass

class User(db.Document):
    email = db.EmailField(max_length=255, required=True)
    nickname = db.StringField(max_length=255, required=True)
    password = db.StringField(max_length=16, required=True)
    categoria = db.ReferenceField('Category', required=True)

    meta = {
        'indexes': [
            {'fields': ['nickname', 'email'], 'unique': True}
        ]
    }
Run Code Online (Sandbox Code Playgroud)

如上所示,我有一个继承"Generic"类的"Category"类."User"类最后有一个ReferenceField属于Category.这样,当我创建用户时,mongo db上的category字段存储为ObjectID,与"generic"集合相关,该集合具有我创建的所有类别.

下一步是创建表单以将新文档插入到用户集合中.在我的Views python文件中我有这个cose:

def iscrizione():

    form = model_form(User, only=['email', 'nickname', 'password', 'categoria'])(request.form)

    if request.method == 'GET': …
Run Code Online (Sandbox Code Playgroud)

python wtforms flask-mongoengine

5
推荐指数
1
解决办法
1888
查看次数

Python / Flask / MongoEngine DateTimeField

首先,我是python和flask的新手。我四处搜寻并尝试了一些无济于事的事情。我有一个具有DateTimeField作为成员之一的模型,我们称它为“ created_at”。当我返回查询集为JSON时,我在字段中看到了这一点

...
"created_at": {
    "$date": 1412938697488
} 
...
Run Code Online (Sandbox Code Playgroud)

无论如何,是否有通过自定义JSON编码器等获取输出的方式,如下所示:

"created_at": "2014-10-10T07:33:04Z",
Run Code Online (Sandbox Code Playgroud)

任何指导或建议,将不胜感激。

谢谢!

python mongoengine flask flask-mongoengine

5
推荐指数
1
解决办法
919
查看次数

错误未注册flask-mongoengine教程

我开始了这个Turial,在这里

并得到这个错误

**mongoengine.errors.NotRegistered:** `Comment` has not been registered in the document registry. Importing the document class automatically registers it, has it been imported?
Run Code Online (Sandbox Code Playgroud)

任何的想法。太感谢了。

mongodb mongoengine flask-mongoengine

5
推荐指数
1
解决办法
2589
查看次数

Mongoengine 查询设置为列表转换

就像在带有 sql 后端的 django 中一样,我们可以通过以下方式将查询集转换为平面列表

foovar.objects.all().values_list('id', flat=true)
Run Code Online (Sandbox Code Playgroud)

给出一个 id 列表

如何在 mongo 后端获取 id 列表,正在使用的 ORM 是 mongoengine,其中 values_list 函数没有平面参数。

python django mongoengine flask-mongoengine

4
推荐指数
1
解决办法
4986
查看次数

带有日期范围的 Mongoengine 查询

我试图在指定的时间跨度内通过 mongoengine 从 mongodb 检索数据。下面是使用的数据库模型。

class DeviationReport(db.Document):
    meta = {'collection': 'DeviationReport'}
    created_at = db.DateTimeField()
    date = db.DateTimeField()
    author = db.StringField()
    read_by = db.ListField(default=[])
    prod_line = db.ReferenceField(ProductionLine)
    product = db.ReferenceField(Product)
    description = db.StringField()
Run Code Online (Sandbox Code Playgroud)

我试过的是下面的代码。但是它不会返回任何结果。当我需要根据用户输入构建动态查询时,我使用了类似的方法。

kwargs = {}
start = datetime.datetime(2018, 12, 11)
end = datetime.datetime(2019, 03, 13)
kwargs['created_at'] = { '$lt': end, '$gt': start }
DeviationReport.objects(**kwargs)
Run Code Online (Sandbox Code Playgroud)

我显然已经确定日期范围内有对象,并且我已经阅读了其他类似的帖子,其中下面的查询已成功使用。如何让我的查询返回 'start' 和 'end' 之间的所有内容,或者如何按照我的意愿重写它?

谢谢。

python flask flask-mongoengine

4
推荐指数
1
解决办法
4046
查看次数

Mongoengine: TypeError: __init__() 得到一个意外的关键字参数

我正在使用flask-mongoengine 扩展,我有一个像这样的用户类:

class User(db.Document, UserMixin):     
    email = db.StringField(max_length=120, required=True, unique=True)
    password_hash = db.StringField(max_length=80, required=True)   
    active = db.BooleanField()
    fb_id = db.StringField(max_length=120, required=False)

    def __init__(self, email, password, fb_id=None, active=True):           
        hashp = md5.md5(password).hexdigest()        
        self.email=email
        self.password_hash=hashp
        self.fb_id=fb_id
        self.active=active
Run Code Online (Sandbox Code Playgroud)

但是当我做一个简单的获取时: User.objects.get(email = email)

我收到错误:

TypeError: __init__() got an unexpected keyword argument 'password_hash'

但是我在我的 init 中设置了 password_hash。令人惊讶的是,如果我删除整个__init__并通过 args 传递所有内容,它工作正常。

所以我认为我在__init__. 我很坚持这一点,将不胜感激您的帮助。

mongoengine flask flask-mongoengine

3
推荐指数
1
解决办法
5159
查看次数

升级后无法连接到MongoDB?

我正在使用Flask构建一个网站,我将MongoDB与MongoEngine ORM一起使用.为了重新开始,我现在升级了我的ubuntu 14.04开发机器上的所有apt和pip包.不幸的是,这破坏了我与MongoDB的联系:

Traceback (most recent call last):
  File "./run.py", line 4, in <module>
    from app import app, socketio
  File "/home/kr65/beta/app/__init__.py", line 21, in <module>
    mongoDb = MongoEngine(app)
  File "/usr/local/lib/python2.7/dist-packages/flask_mongoengine/__init__.py", line 33, in __init__
    self.init_app(app)
  File "/usr/local/lib/python2.7/dist-packages/flask_mongoengine/__init__.py", line 66, in init_app
    self.connection = mongoengine.connect(**conn_settings)
  File "/usr/local/lib/python2.7/dist-packages/mongoengine/connection.py", line 164, in connect
    return get_connection(alias)
  File "/usr/local/lib/python2.7/dist-packages/mongoengine/connection.py", line 126, in get_connection
    raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
mongoengine.connection.ConnectionError: Cannot connect to database default :
False is not a …
Run Code Online (Sandbox Code Playgroud)

python mongodb mongoengine flask flask-mongoengine

3
推荐指数
1
解决办法
2229
查看次数

MongoEngine从ListField删除字符串

码:

class Users(db.Document, UserMixin):
    first_name = db.StringField()
    last_name = db.StringField()
    username = db.StringField(unique=True)
    password = db.StringField()
    email = db.StringField()
    following = db.ListField(db.StringField(), default=[])
    role = db.ListField(db.StringField(), default=["user"])
    confirmed = db.BooleanField(default=False)
    confirmed_on = db.DateTimeField()
Run Code Online (Sandbox Code Playgroud)

所以如果我想从Users.following字段中删除某个字符串

Users.objects(username="some_user").update(pull__following=["some_string"]) 然后保存吗?

因为我已经尝试过了,但它不会从 following listField

mongodb mongoengine flask flask-mongoengine

2
推荐指数
1
解决办法
1557
查看次数

MongoClient 在 fork 之前打开。仅创建 MongoClient Flask

我正在使用带有进程 4 的 uwsgi 线程模式运行 Flask 并使用 pymongo 还使用 flask_mongoengine 并且 uwsgi 说“MongoClient 在 fork 之前打开。仅创建 MongoClient”我尝试使用 connect=False 进行连接,但结果是一样的

lazy-apps = true 问题已修复,但 uwsgi 似乎需要更多时间来加载可以执行哪些操作以获得最佳性能?

pymongo flask uwsgi flask-mongoengine

2
推荐指数
2
解决办法
5951
查看次数

无法安装flask-mongoengine

尝试flask-mongoengine使用 WSL2/Debian 在 Win10 计算机上安装时出错。我能够毫无问题地安装其他项目依赖项。

输入的命令是:python3 -m pip install flask-mongoengine,错误输出如下)

曾尝试使用 做类似的事情sudo,但没有改进。

    Collecting flask-mongoengine
      Using cached flask-mongoengine-0.9.5.tar.gz (111 kB)
        ERROR: Command errored out with exit status 1:
         command: /mnt/d/dev/opalapi/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-wl69gb5c/flask-mongoengine/setup.py'"'"'; __file__='"'"'/tmp/pip-install-wl69gb5c/flask-mongoengine/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-ldtngp0q
             cwd: /tmp/pip-install-wl69gb5c/flask-mongoengine/
        Complete output (44 lines):
        WARNING: The wheel package is not available.
          ERROR: Command errored out with exit status 1:
           command: /mnt/d/dev/opalapi/venv/bin/python3 -u -c 'import sys, setuptools, …
Run Code Online (Sandbox Code Playgroud)

python pip flask flask-mongoengine

2
推荐指数
1
解决办法
1729
查看次数

标签 统计

flask-mongoengine ×10

flask ×7

mongoengine ×6

python ×6

mongodb ×3

django ×1

pip ×1

pymongo ×1

uwsgi ×1

wtforms ×1