小编Nic*_*ght的帖子

与关联对象在同一个表上的多对多关系

相关(对于无关联对象用例):SQLAlchemy单表上的多对多关系

建立多对多关系很容易.如上面的问题所述,在同一个表上建立多对多关系几乎一样容易.

与关联对象建立多对多关系也很容易.

我似乎无法找到的是组合关联对象和多对多关系的正确方法,左侧和右侧是同一个表.

所以,从简单,天真,明显错误的版本开始,我花了很长时间试图按摩到正确的版本:

t_groups = Table('groups', metadata,
    Column('id', Integer, primary_key=True),
)

t_group_groups = Table('group_groups', metadata,
    Column('parent_group_id', Integer, ForeignKey('groups.id'), primary_key=True, nullable=False),
    Column('child_group_id', Integer, ForeignKey('groups.id'), primary_key=True, nullable=False),
    Column('expires', DateTime),
)

mapper(Group_To_Group, t_group_groups, properties={
    'parent_group':relationship(Group),
    'child_group':relationship(Group),
})
Run Code Online (Sandbox Code Playgroud)

映射这种关系的正确方法是什么?

python sqlalchemy

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

我可以在Zookeeper中递归创建路径吗?

我将ZooKeeper引入了一个并发管理项目,我尝试的第一件事就是对我来说非常明显(使用zkpython绑定):

zh = zookeeper.init('localhost:2181')
zookeeper.create(zh, '/path/to/a/node', '', [ZOO_OPEN_ACL_UNSAFE])
Run Code Online (Sandbox Code Playgroud)

我找回了NoNodeException麻烦.

在对此进行反思并查看文档(例如它们)之后,我一直无法找到一种方法来完成mkdir -pZooKeeper为我创建缺少的父节点的位置.

我是否遗漏了任何东西,或者我只是为了路径的每个部分发布了单独的create()s,无论我喜欢与否?

python apache-zookeeper

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

安全混合熵源

让我们假设我们生成非常大的(例如128或256位)数字作为分组密码的密钥.

让我们进一步假设我们戴着锡箔帽(至少在外面时).

如此偏执,我们希望确定我们的可用熵,但我们并不完全信任任何特定的来源.也许政府正在操纵我们的硬币.也许这些骰子是如此微妙的加权.如果硬件中断输入/dev/random只是有点过于一致怎么办?(除了偏执,我们很懒,我们不想手工制作它......)

所以,让我们把它们混合起来.

这样做的安全方法是什么?据推测,只是从每个源连接几个字节并不完全安全 - 如果其中一个源有偏差,理论上它可能适用于诸如相关密钥攻击之类的事情.

在连接的字节上运行SHA-256是否足够?

(是的,在某个时候我很快就会拿起一本密码学工程.:))

random cryptography entropy

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

POINTER_32 - 它是什么,为什么?

我刚刚被赋予了将遗留应用程序从32位更新到64位的任务.在查看任务的范围时,我在包含外部(例如平台)标头之前立即发现了以下定义:

#define POINTER_32
Run Code Online (Sandbox Code Playgroud)

我找不到使用这个定义或它有什么效果的东西,但它看起来像是与我的任务直接相关的东西!

它是为了什么?有什么用?立即将其移除是否安全(我认为从长远来看有必要将其移除)?

这是使用MS VC++ 2008,很快将是2010年.

c++ 32bit-64bit visual-c++

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

Python String Argument Parsing

我正在使用python中的cmd类,它将我的所有参数作为一个大字符串传递给我.将这个arg字符串标记为args []数组的最佳方法是什么.

例:

args = 'arg arg1 "arg2 with quotes" arg4 arg5=1'
result = split_args(args)
Run Code Online (Sandbox Code Playgroud)

它看起来像:

 result = [  
      'arg',
      'arg1',
      'arg2 with quotes',
      'arg4',
      'arg5=1'
]
Run Code Online (Sandbox Code Playgroud)

python

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

第一个arg存在时的Python dict.get()行为,但*default*不存在

所以,我有一些包含字典的代码,我在字典上做了一些验证.验证规则基本上是字典可以包含'到'键或'到[]'键.无论它包含哪一个,我都需要返回值,这样我就可以根据字典中另一个键的长度来检查长度.

我实际上找到了解决当前问题的更好方法,但是在解决这个问题时,我在Python 2.7.1中遇到了一个奇怪的行为,这意味着dict.get()不能像我想象的那样工作,所以在我深入研究字典的C实现之前,我正在寻找一些澄清,我并不急于做:)

简短的摘要版本似乎是,如果您将默认值传递给.get(),即使第一个参数是字典中的有效键,Python也会尝试评估该默认值.

这是一个例子:

>>> toparm = 'to'
>>> toarrparm = 'to[]'
>>> d = {toparm: 'foo'}
>>> d.get(toarrparm, [d[toparm]])
['foo']
>>> d = {toarrparm: ['foo', 'bar']}
>>> d.get(toarrparm, [d[toparm]])
Traceback (most recent call last):
  File "<input>", line 1, in <module>
KeyError: 'to'
>>> d
{'to[]': ['foo', 'bar']}
>>> toarrparm
'to[]'
>>> sys.version
'2.7.1 (r271:86882M, Nov 30 2010, 10:35:34) \n[GCC 4.2.1 (Apple Inc. build 5664)]'
>>> d['to[]'] = ['foo', 'bar', 'baz']
>>> d
{'to[]': ['foo', 'bar', 'baz']}
>>> d.get(toarrparm) …
Run Code Online (Sandbox Code Playgroud)

python dictionary

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

什么是8BITMIME?

什么是8bitmime?是7bit和8bit的差异?

怎么理解他们?

email smtp

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

将函数传递给C中的另一个函数.我做错了什么?

得到了一些我正在研究的C代码,它看起来应该可行.当我尝试链接目标文件时,我在main中的getLine函数中得到一个错误,说"对outputBus的未定义引用"等等.我在功能名称之前使用和不使用&符号尝试过它.用...编译gcc -ansi.我究竟做错了什么?

typedef void(*DualOutput)(const int, const int);
typedef void(*TripleOutput)(const int, const int, const double);

void   passenger(node**, node**, itemtype*);
double bus(node**, node**, itemtype*);
int    getLine(itemtype*, DualOutput, DualOutput);
void   getLines(node**, node**, DualOutput, DualOutput, TripleOutput);
void   outputBus(const int, const int);
void   outputPeople(const int, const int);
void   outputTotal(const int, const int, const double);

int main(int argc, char **argv){
  node *head = NULL;
  node *tail = NULL;

  getLines(&head, &tail, outputBus, outputPeople, outputTotal);
  return 0;
} 
Run Code Online (Sandbox Code Playgroud)

c

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

我无法在python中初始化类

我有一个类Flight,我正在尝试初始化它,但我有一个语法错误

print x=Flight(flightFromInput='nebrasca')
Run Code Online (Sandbox Code Playgroud)

这是我的示例文件的内容

class Flight:
    flightFrom = None
    flightTo = None
    departureDate = None
    arrivalDate=None
    airline=None
    serviceClass=None
    departureAirport = None
    arrivalAirport=None


    #----------------------------------------------------------------------
    def __init__(self,flightFromInput):
        self.flightFrom = flightFromInput

print x=Flight(flightFromInput='nebrasca')
Run Code Online (Sandbox Code Playgroud)

这段代码有什么问题?

python class

0
推荐指数
1
解决办法
1452
查看次数