小编mah*_*han的帖子

将mongodb返回对象转换为字典

我正在使用瓶子框架和mongoengine.我有订单型号:

class OrderDetail(Option):
    orderDetailsQty = FloatField()

    def to_dict(self):
        return mongo_to_dict_helper(self)


class Order(Document):
    userName = StringField(required=True)
    orderDate = DateTimeField()
    orderStatus = ListField(EmbeddedDocumentField(Status))
    orderDetails = ListField(EmbeddedDocumentField(OrderDetail))
    orderComments = ListField(EmbeddedDocumentField(Comment))
    isActive = BooleanField()

    def to_dict(self):
        orderObj = mongo_to_dict_helper(self)
        orderDetailList = []
        for orderDetail in orderObj["orderDetails"]:
            orderDetailList.append(orderDetail.__dict__)
        orderObj["OrderDetails"] = orderDetailList
        return (self)
Run Code Online (Sandbox Code Playgroud)

当查询mongodb时,我得到一个对象,然后使用以下函数将其转换为dict:

def mongo_to_dict_helper(obj):
    return_data = []
    for field_name in obj._fields:
        if field_name in ("id",):
            continue
        data = obj._data[field_name]

        if isinstance(obj._fields[field_name], StringField):
            return_data.append((field_name, str(data)))
        elif isinstance(obj._fields[field_name], FloatField):
            return_data.append((field_name, float(data)))
        elif isinstance(obj._fields[field_name], IntField):
            return_data.append((field_name, …
Run Code Online (Sandbox Code Playgroud)

python mongodb mongoengine bottle python-2.7

28
推荐指数
4
解决办法
3万
查看次数

访问时通过单击Firefox中的"返回"按钮重新加载页面

我有一个页面,可以将整个身体的动画从观众的屏幕中移出来作为过渡.它工作正常,但当用户点击浏览器中的后退按钮时,Firefox会从没有正文的历史记录中显示缓存页面.

因此,通过后退按钮访问页面时,重新加载页面非常简单.

我已经尝试了以下代码来重新加载页面,以避免重复重新加载.

<script type="text/javascript">
  window.onload=function(){
    var e=document.getElementById("refreshed");
    if(e.value=="no")e.value="yes";
    else{e.value="no";location.reload();}
  }
</script>
<input type="hidden" id="refreshed" value="no">
Run Code Online (Sandbox Code Playgroud)

它没有解决问题,因为甚至没有调用匿名函数.

所以我尝试设置标题,以便浏览器不会缓存页面.

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
Run Code Online (Sandbox Code Playgroud)

它也没有解决问题.

该页面在Chrome中正常运行.

我使用的Firefox版本是12.0

如何使用Javascript,JQuery或任何其他客户端脚本重新加载页面?

html javascript firefox jquery html5

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

Python找不到mongoengine模块

我一直在尝试建立我的第一个瓶子服务器。我已经启动了 virtualenv,使用 pip 安装了 Bottle 和 mongoengine。问题是,即使这样,当我运行 BottleApp.py 启动服务器时,我也会收到以下错误

没有名为 mongoengine 的模块

在我所做的行中

from mongoengine import *
Run Code Online (Sandbox Code Playgroud)

我还发现我的 $PYTHONPATH 尚未在 virtualenv 中设置。我应该手动设置 $PYTHONPATH 和 $PATH 来解决我的问题吗?

我在 ArchLinux 上运行,当前版本的 arch 现在默认安装 python 3.x 我已经安装了 python2 和 python2-pip 并使用 pip2 安装了 Bottle 和 mongoengine。是否有任何依赖性问题或冲突导致此错误?

我对两者感到困惑。需要帮忙。

linux python-2.x virtualenv archlinux mongoengine

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