小编Auf*_*ind的帖子

为什么在SQLAlchemy中有一个未绑定到引擎的MetaData对象是有用的?

我试图了解MySQL关于MetaData对象和engine对象的行为.这个SO-Answer描述MetaData

表定义的集合

engine作为

特定数据库的方言和连接详细信息

到现在为止还挺好.但什么时候将这两者分开是有用的?表定义是否未链接到特定数据库?

python metadata sqlalchemy

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

如何告诉MySQL在更新/插入之前触发哈希?

我很想在MySQL中创建一个触发器,这样每次我将一个值插入一个名为titleHASH 的列时,都应该创建并存储在列中title_hash.由于我不知道这是如何工作的,我在google搜索时发现了这个代码:

CREATE TRIGGER insertModelHash
BEFORE
  INSERT
ON
  products
FOR EACH ROW SET
  NEW.model_hash = CONV(RIGHT(MD5(NEW.products_model), 16), 16, 10)
Run Code Online (Sandbox Code Playgroud)

MySQL-reference告诉我,这意味着:

  1. 创建一个名为触发insertModelHash...
  2. ...在插入行int表之前products......
  3. 在我打算插入的每个新行中使用MD5, RIGHT, CONV列上的函数products_model.

3.点需要更多解释:

  • 我想,这NEW是新行的某种标识符.所以NEW.products_model指向products_model当前(新)行中的列.
  • 然后MD5发出.由于我想使用SHA-2,因此我很明显可以更改MD5(NEW.products_model), 16)===> SHA2(NEW.products_model), 224).
  • 现在我很挣扎:为什么这个人会用CONV(RIGHT(...)...)?这真的有必要吗?

补充信息:现在,我正在做

hashlib.sha224(title).hexdigest()
Run Code Online (Sandbox Code Playgroud)

在Python中存储此值.

我感谢任何建议/解释!

python mysql hash triggers insert

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

一种获取pythons scipy模块的coo_matrix中非零值计数的方法?

我想使用coo_matrix.nonzero()哪个返回两个数组的元组,其中包含给定矩阵中非零指数的索引.文档中的示例指出:

>>> from scipy.sparse import coo_matrix
>>> A = coo_matrix([[1,2,0],[0,0,3],[4,0,5]])
>>> nonzero_entrys = A.nonzero()
(array([0, 0, 1, 2, 2]), array([0, 1, 2, 0, 2]))
Run Code Online (Sandbox Code Playgroud)

然后我会做类似的事情,len(nonzero_entrys[0])但这似乎是一种转移.我在文档中忽略了一种更好的方法吗?

python count scipy sparse-matrix

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

虽然我正在做str.decode(),但Python会抛出UnicodeEncodeError.为什么?

考虑这个功能:

def escape(text):
    print repr(text)
    escaped_chars = []
    for c in text:
        try:
            c = c.decode('ascii')
        except UnicodeDecodeError:
            c = '&{};'.format(htmlentitydefs.codepoint2name[ord(c)])
        escaped_chars.append(c)
    return ''.join(escaped_chars)
Run Code Online (Sandbox Code Playgroud)

它应该通过相应的htmlentitydefs转义所有非ascii字符.不幸的是python抛出

UnicodeEncodeError: 'ascii' codec can't encode character u'\xe1' in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

当变量text包含字符串,其repr()u'Tam\xe1s Horv\xe1th'.

但是,我不使用str.encode().我只用str.decode().我错过了什么吗?

python string encoding escaping

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

MySQL以某种方式存储最后的查询吗?

在使用MySQL和一些真正的"性能贪婪的查询"时,我注意到,如果我运行这样一个贪婪的查询,它可能需要2或3分钟来计算.但是如果我在第一次完成后立即重试查询,则只需几秒钟.MySQL存储的内容是"最后的x个查询"吗?

mysql performance

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

有没有推荐的python和MySQL之间的交互方式?

在python和MySQL之间进行交互的推荐方式是什么?目前我正在使用MySQLdb,我从Oursql听到.但我问自己,是否有更合适的方法来管理这个问题.

python mysql interaction

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

如何让Django在XAMPP中使用MySQL?

我在我的Mac(Snow Leopard)上安装了XAMPP并安装了Django.我如何告诉Django使用它,当我启动时,python manage.py runserver我收到此错误:

...
_mysql_exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/opt/local/var/run/mysql5/mysqld.sock' (2)")
Run Code Online (Sandbox Code Playgroud)

我怎么告诉Django使用它?

/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
Run Code Online (Sandbox Code Playgroud)

python mysql sockets django xampp

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

是否可以在完整的mysql表中添加自动增量主索引列?

假设这个表有近5 000 000行

CREATE TABLE `author2book` (
  `author_id` int(11) NOT NULL,
  `book_id` int(11) NOT NULL,
  KEY `author_id_INDEX` (`author_id`),
  KEY `paper_id_INDEX` (`book_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Run Code Online (Sandbox Code Playgroud)

是有可能添加主索引列idautoincrement作为首位?我期待这样的事情:

CREATE TABLE `author2book` (
  `id` int(11) NOT NULL AUTO_INCREMENT,  <<<<  This is what I try to achieve!
  `author_id` int(11) NOT NULL,
  `book_id` int(11) NOT NULL,
  KEY `author_id_INDEX` (`author_id`),
  KEY `paper_id_INDEX` (`book_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
Run Code Online (Sandbox Code Playgroud)

这可能吗?

编辑:我应该提一下,我想要填充添加的列.

mysql add primary-key

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

如何不仅选择`numpy.ndarray`的最大值,而选择python中的前3个最大值?

我有一个存储在row类型变量中的浮点值列表(正值和负值)<type 'numpy.ndarray'>.

max_value = max(row)
Run Code Online (Sandbox Code Playgroud)

给了我最大的价值row.有没有一种优雅的方式来选择前3(5,10,...)值?

我想出来了

  1. 从中选择最大值 row
  2. 删除最大值 row
  3. 从中选择最大值 row
  4. 删除最大值 row
  5. 等等

但这肯定是一种丑陋的风格,而不是pythonic.蟒蛇人对此说了些什么?:)


编辑

我不仅需要最大三个值,还需要位置(索引输入row).对不起,我忘了提到......

python select numpy max

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

如何/为什么这在python中工作?rover._Dog__password()

我正在做python koan(对于python 2.6)并且发现了一些我不理解的东西.其中一个文件在第160行中包含以下代码:

class Dog(object):
    def __password(self):
        return 'password'
Run Code Online (Sandbox Code Playgroud)

这个

rover = Dog()
password = rover.__password()
Run Code Online (Sandbox Code Playgroud)

结果是AttributeError.这对我来说很清楚.(__password(self)由于领先的两个下划线,是某种私人方法).

但是这个

rover._Dog__password()
Run Code Online (Sandbox Code Playgroud)

对我来说是一个谜.有人可以向我解释这是如何或为什么有效或更好地指向我所描述的文档?

python methods syntax private class

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