小编Ton*_*pia的帖子

使用c#驱动程序将Dictionary插入MongoDB

我处于无法预测MongoDB文档将包含哪些字段的情况.所以我不能再创建一个具有_id类型字段的对象BsonID.我发现创建一个Dictionary(HashTable)并在我的需要中多次添加我的DateTime和String对象非常方便.

然后我尝试将生成的Dictionary对象插入MongoDb,但默认序列化失败.

这是我的类型HashTable的对象(如字典,但内部有不同的类型):

{ "_id":"",
"metadata1":"asaad",
"metadata2":[],
"metadata3":ISODate("somedatehere")}
Run Code Online (Sandbox Code Playgroud)

我得到的驱动程序的错误是:

Serializer DictionarySerializer期望类型为DictionarySerializationOptions的序列化选项,而不是DocumentSerializationOptions

我用Google搜索,但找不到任何有用的东西.我究竟做错了什么?

c# serialization dictionary insert mongodb

12
推荐指数
1
解决办法
1万
查看次数

Python 十进制 - 乘以零

为什么下面的代码会这样:

from decimal import Decimal
result = Decimal('0') * Decimal('0.8881783462119193534061639577')
print(result)
Run Code Online (Sandbox Code Playgroud)

返回0E-28

我已将其追溯到模块中的以下代码:

if not self or not other:
    ans = _dec_from_triple(resultsign, '0', resultexp)
    # Fixing in case the exponent is out of bounds
    ans = ans._fix(context)
    return ans
Run Code Online (Sandbox Code Playgroud)

该代码似乎遵循十进制算术规范,它没有明确建议当我们乘以零时要做什么,指的是另一个标准中的“特殊数字” ,它也没有指定当我们将整数乘以零时我们要做什么:) 所以十进制库做了明确指定的事情:

  • 在舍入之前,结果的系数是通过将操作数的系数相乘来计算的。
  • 四舍五入之前结果的指数是两个操作数的指数之和。
  • 结果的符号是操作数符号的异或。

问题:如果其中一个操作数为零,需要返回系数和指数(即0E-28)吗?在调用乘法函数时我们已经知道该系数是多少。为什么不直接返回零呢?

python arithmetic-expressions decimal

9
推荐指数
1
解决办法
352
查看次数

Flask - socket.error:[Errno 10053]已建立的连接已被主机中的软件中止

根据要求重新打开这个问题(错误:[Errno 10053]),提供最小的可测试示例:

import time
from flask import Flask, render_template
app = Flask(__name__, static_folder='static', template_folder='templates')

@app.route('/')
def main():
    return render_template('test.html')

@app.route('/test')
def test():
    print "Sleeping. Hit Stop button in browser now"
    time.sleep(10)
    print "Woke up. You should see a stack trace from the problematic exception below."
    return render_template('test.html')

if __name__ == '__main__':
    app.run()
Run Code Online (Sandbox Code Playgroud)

HTML:

<html>
<body>
<a href="/test">test</a>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

指南:运行应用程序,导航到localhost:port,单击链接,然后在浏览器中单击"停止"按钮.一旦睡眠结束,你应该看到异常.睡眠是模拟服务器上发生的任何类型活动所必需的.它可能只是几秒钟:如果用户设法离开页面 - Flask将崩溃.

socket.error:[Errno 10053]已建立的连接已被主机中的软件中止

为什么服务器停止为应用程序提供服务?我可以将哪些其他服务器用于我的Flask应用程序以避免这种情况?

python sockets flask

8
推荐指数
1
解决办法
9216
查看次数

使用gevent时如何在Python中获取POST变量?

这是一个问题:如何在使用gevent时在Python中获取POST变量?

以下内容传递给应用程序:

def application(env, start_response):
Run Code Online (Sandbox Code Playgroud)

这是另一部分:

if __name__ == '__main__':
print 'Serving on 8080...'
WSGIServer(('', 8080), application).serve_forever()
Run Code Online (Sandbox Code Playgroud)

但是env不包含我的帖子!

请赐教 - 我的误会在哪里?

谢谢!

python post gevent

7
推荐指数
1
解决办法
1488
查看次数

C#无法访问类的基本属性(仅继承)

这是我的代码(应该很容易理解我想要实现的目标):

public class Order
{
    private Drink drink;
    public Drink Drink {get { return drink; } set { drink = value; }}
}

public class Drink
{
    enum colour 
    {
        Red, Transparent
    };
}

public class cocktail : Drink
{
    private int alcoholContent;
    public int AlcoholContent  { get { return alcoholContent; } set { alcoholContent = value; } }
}
Run Code Online (Sandbox Code Playgroud)

然后我试图访问属性,但他们不在那里:

Order order = new Order();
order.Drink = new cocktail();
order.Drink. <- no alcohol content?
Run Code Online (Sandbox Code Playgroud)

这是为什么?我以为我创造了一个鸡尾酒课,而不仅仅是一杯饮品?我究竟做错了什么?

谢谢!

c# oop inheritance properties visual-studio-2012

6
推荐指数
1
解决办法
7687
查看次数

MongoDB - 简单的子查询示例

鉴于数据:

> db.parameters.find({})
{ "_id" : ObjectId("56cac0cd0b5a1ffab1bd6c12"), "name" : "Speed", "groups" : [ "
123", "234" ] }
> db.groups.find({})
{ "_id" : "123", "name" : "Group01" }
{ "_id" : "234", "name" : "Group02" }
{ "_id" : "567", "name" : "Group03" }
Run Code Online (Sandbox Code Playgroud)

我想提供一个参数 _id和一个查询返回参数表中给定文档的groups数组中的所有组.

直截了当的解决方案似乎在PyMongo中进行了几次DB调用:

  1. 根据提供的_id 从参数表中获取参数
  2. 对于groups数组的每个元素,从groups集合中选择一个文档

但这将带来如此多的不必要开销.我觉得必须有更好,更快的方法在MongoDB中执行此操作(不在DB中运行自定义JS).或者我应该通过将其归一化(如关系表)来重新构建我的数据,忽略基于文档的方法?

再次,请帮我找到一个可以从PyMongo数据库界面工作的解决方案

nested subquery mongodb pymongo

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

Pycharm - 代码单元 - 使用断点

我正在使用 PyCharm 2018 的新功能,称为“代码单元”。我可以在单元格内放置一个断点并在我点击该行时中断执行吗?我使用Ctrl+Enter来运行代码单元。

debugging breakpoints pycharm

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

React tabs - 切换破坏组件,需要维护相同的组件

我正在尝试使用 React 和 Material-UI 制作一个多选项卡的 SPA。我以这个演示的代码为例:https : //codesandbox.io/s/qlq1j47l2w

看来,如果我按照上述示例进行操作,每次在选项卡之间导航时,我最终都会返回带有选项卡内容的组件的新实例:

      <Tabs
        value={value}
        onChange={this.handleChange}
        indicatorColor="primary"
        textColor="primary"
        scrollable
        scrollButtons="auto"
      >
        <Tab label="Tab 1" />
        <Tab label="Tab 2" />
      </Tabs>
    </AppBar>
    {value === 0 && <Tab1Contents/>}
    {value === 1 && <Tab2Contents/>}
Run Code Online (Sandbox Code Playgroud)

由于 Tab1Contents 是一个表单,我希望保留其内部状态,而不是加载组件的新实例,上面的代码似乎是这样做的。

让 React 仅使用组件的一个实例并“记住字段值”的最佳方法是什么?

编辑

我已经将 Redux 添加到示例中,但是在我切换离开的那一刻,与 Tab 中的表单对应的存储被破坏了。有没有其他方法可以在 React 中实现选项卡来隐藏选项卡内容,而不是在每次导航离开时销毁它们并从头开始重新创建它们?

tabs reactjs

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

Python gevent + bottle.查询API.如何使用gevent来防止超时锁?

我正在使用gevent + bottle进行以下操作:

  1. 在远程服务器上调用API方法
  2. 来自API的处理结果
  3. 返回HTML

我已经为API调用(httplib/socket)设置了一个tiemout,但是如果它设置为5秒(例如),我的python脚本在那个时候很忙,并且不能返回任何其他页面(这是正常的).

问题:我能以某种方式聪明地使用gevent(在一个单独的脚本中,可能吗?)来处理这么长的请求?

我正在考虑在localhost:8080上启动一个单独的API查询脚本并将其置于负载均衡器之后(如"Internet"所建议的那样),但我确信它会有更好的方法.

我不是一位经验丰富的程序员,所以谢谢你的帮助!

python api asynchronous timeout gevent

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

React Material-UI - TablePagination - onChangePage 不是函数

我已从 Material-UI v4 升级到 v5,现在收到以下错误:

类型错误:onChangePage 不是函数

function handleNextButtonClick(row) {
 >    onChangePage(row, page + 1);
}
Run Code Online (Sandbox Code Playgroud)

看来该onChangePageprop 现在在组件内未定义TablePaginationActions

pagination reactjs material-ui

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