在Azure上获取应用程序错误我不在本地获取

时间:2018-07-11 01:01:38

标签: python azure flask pymongo mongoengine

我正在开发在Azure上部署的Flask / MongoDB应用程序。在本地,我正在创建模型并测试数据库连接。我正在使用Flask-MongoEngine来管理数据库连接。这是一个代码示例,可以在localhost上完美运行,但是在Azure上调用其部署版本时失败。

# On models.py

from flask_mongoengine import MongoClient
db = MongoClient()

class User(db.Document):
    name = db.StringField(max_length=50)
    token  = db.StringField(max_length=50)
    email  = db.EmailField()

后来,从views.py起,我这样称呼我的User类:

import models as mdl

@app.route('/test')
def test():
    """For testing purposes"""
    user = mdl.User(name='Matias')
    user.save()
    users = mdl.User.objects
    return jsonify(users)

按预期在本地输出。但是,在Azure上,出现以下错误 (将仅显示回溯的最后和相关部分):

File ".\app\views.py", line 53, in test
    user = mdl.User(name='Matias')
  File "D:\home\python364x86\lib\site-packages\mongoengine\base\document.py", 
line 43, in _init_
    self._initialised = False
  File "D:\home\python364x86\lib\site-packages\mongoengine\base\document.py", 
line 168, in _setattr_
    self._is_document and
AttributeError: 'User' object has no attribute '_is_document'

通过pip freeze,我检查了两种环境中的mongoenginepymongoflask_mongoengine是否使用相同的版本。我似乎找不到其他遇到相同问题的人。该应用程序作为Webapp部署在Azure云中的Windows计算机上。

感谢您的帮助。

PS:详细信息
回顾mongoengine代码,我发现_is_document属性在类DocumentDocumentMetaclassTopLevelDocumentMetaclass)的元类中设置。我尝试将属性设置为True内的User,并显示以下错误:
AttributeError: 'User' object has no attribute '_meta'
这也是在这些元类中定义的属性。元类代码以某种方式未运行?也许Azure环境与此有关?

0 个答案:

没有答案