小编Anu*_*yal的帖子

什么是python中最好/最容易使用的加密库

我想用python加密一些文件,哪种方法可以使用gpg/pgp使用任何标准/着名的python库?

python encryption gnupg pgp

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

django AuditTrail vs Reversion

我正在开发一个新的Web应用程序,我需要将数据库中的任何更改存储到审计表中.此类审计表的目的是在稍后的实际物理审计中,我们可以确定在某种情况下发生了什么,谁在编辑复杂计算时编辑了什么以及db的状态.因此,大多数审计表都将被编写而不会被读取.有时可能会生成报告.

我找了可用的解决方案

  1. AuditTrail - 简单,这就是为什么我倾向于它,我可以理解它的单个文件代码.
  2. Reversion - 看起来很简单,但不确定如果需要修改它会有多容易.
  3. rcsField 似乎非常复杂,对我的需求来说太多了

我没有尝试过这些中的任何一个,所以我想知道一些真实的经历以及我应该使用的经验.例如哪一个更快,占用空间更小,易于扩展和维护?

database django audit audit-trail reversion

16
推荐指数
2
解决办法
5857
查看次数

拉丁-1到ascii

我有一个带有重音拉丁字符的unicode字符串,例如

n=unicode('Wikipédia, le projet d’encyclopédie','utf-8')
Run Code Online (Sandbox Code Playgroud)

我想把它转换成普通的ascii,即'Wikipedia,le projet dencyclopedie',所以所有的尖锐/重音,cedilla等应该被删除

最快的方法是什么,因为需要完成匹配长自动完成下拉列表

结论: 作为我的标准之一是速度,Lennart的"为unicode编码/解码注册你自己的错误处理程序"给出了最好的结果(参见Alex的答案),随着越来越多的字符拉丁语,速度差异进一步增加.

这是我正在使用的转换表,也修改了错误处理程序,因为它需要处理从error.start到error.end的所有未编码的char.

# -*- coding: utf-8 -*-
import codecs

"""
This is more of visual translation also avoiding multiple char translation
e.g. £ may be written as {pound}
"""
latin_dict = {
u"¡": u"!", u"¢": u"c", u"£": u"L", u"¤": u"o", u"¥": u"Y",
u"¦": u"|", u"§": u"S", u"¨": u"`", u"©": u"c", u"ª": u"a",
u"«": u"<<", u"¬": u"-", u"­": u"-", u"®": u"R", u"¯": u"-",
u"°": u"o", u"±": u"+-", u"²": u"2", u"³": u"3", …
Run Code Online (Sandbox Code Playgroud)

python unicode

16
推荐指数
3
解决办法
9390
查看次数

当包名称仅在运行时已知时,如何使用__import __()导入包?

我有一个带__init__.py文件的消息文件夹(包)和messages_en.py里面的另一个模块.在__init__.py如果我导入messages_en它的工作原理,但__import__失败,"导入错误:没有模块名为messages_en"

import messages_en # it works
messages = __import__('messages_en') # it doesn't ?
Run Code Online (Sandbox Code Playgroud)

我曾经认为'import x'只是另一种说法 __import__('x')

python python-import

15
推荐指数
5
解决办法
3万
查看次数

iframes vs ajax

假设我有一些标签(例如jquery标签),我想在每个标签中动态加载一些页面,我可以用两种方式做到这一点

  1. 使用jquery ajax选项卡(基本上用ajax数据填充div)或
  2. 每个选项卡都可以包含iframe和页面.

Q1.我看到两种用户方法没有区别,有吗?

Q2.我认为iframe方式更好,因为iframe可以加载任何页面,但有时将ajax数据加载到div可能无法按预期工作.

ajax iframe

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

增加int对象

有没有办法在python中增加int对象,int似乎没有实现,__iadd__所以+ = 1实际上返回一个新对象

>>> n=1
>>> id(n)
9788024
>>> n+=1
>>> id(n)
9788012
Run Code Online (Sandbox Code Playgroud)

我想要的是保持指向同一个对象.

目的:我有从int派生的类,我想为该类实现C类型'++ n'运算符

结论:好的,因为int是不可变的,没有办法,看起来我将不得不写这样的东西

class Int(object):
    def __init__(self, value):
        self._decr = False
        self.value = value

    def __neg__(self):
        if self._decr:
            self.value -= 1
        self._decr = not self._decr
        return self

    def __str__(self):
        return str(self.value)

    def __cmp__(self, n):
        return cmp(self.value, n)

    def __nonzero__(self):
        return self.value

n = Int(10)
while --n:
    print n
Run Code Online (Sandbox Code Playgroud)

python int

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

为什么__builtins__既是模块又是dict

我使用内置模块插入一些实例,因此可以全局访问它们以进行调试.该__builtins__模块的问题在于它是主脚本中的模块,并且是模块中的dict,但由于我的脚本取决于案例可以是主脚本或模块,我必须这样做:

if isinstance(__builtins__, dict):
    __builtins__['g_frame'] = 'xxx'
else:
    setattr(__builtins__, 'g_frame', 'xxx')
Run Code Online (Sandbox Code Playgroud)

有没有一个解决方法,比这更短?更重要的是,为什么__builtins__这样做?

这是一个看到这个的脚本.创建一个模块a.py:

#module-a
import b
print 'a-builtin:',type(__builtins__)
Run Code Online (Sandbox Code Playgroud)

创建一个模块b.py:

#module-b
print 'b-builtin:',type(__builtins__)
Run Code Online (Sandbox Code Playgroud)

现在运行python a.py:

$ python a.py 
b-builtin: <type 'dict'>
a-builtin: <type 'module'>
Run Code Online (Sandbox Code Playgroud)

python python-module built-in

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

python十进制比较

python十进制比较

>>> from decimal import Decimal
>>> Decimal('1.0') > 2.0
True
Run Code Online (Sandbox Code Playgroud)

我期望它正确地转换2.0,但是在通过PEP 327读取之后我理解有一些原因没有意外地将float转换为Decimal,但是在这种情况下不应该像在这种情况下那样引发TypeError

>>> Decimal('1.0') + 2.0
Traceback (most recent call last):
  File "<string>", line 1, in <string>
TypeError: unsupported operand type(s) for +: 'Decimal' and 'float'
Run Code Online (Sandbox Code Playgroud)

所有其他运算符/ - %//等也是如此

所以我的问题是

  1. 这是正确的行为吗?(不要在cmp中引发异常)
  2. 如果我派生自己的类并且右浮动转换器基本上是十进制(repr(float_value)),有什么警告吗?我的用例只涉及价格比较

系统详细信息:Ubuntu 8.04.1上的Python 2.5.2

python comparison decimal

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

如何获取字符串列的sqlalchemy长度

考虑这个简单的表定义(使用SQLAlchemy-0.5.6)

from sqlalchemy import *

db = create_engine('sqlite:///tutorial.db')

db.echo = False  # Try changing this to True and see what happens

metadata = MetaData(db)

user = Table('user', metadata,
    Column('user_id', Integer, primary_key=True),
    Column('name', String(40)),
    Column('age', Integer),
    Column('password', String),
)

from sqlalchemy.ext.declarative import declarative_base

class User(declarative_base()):

    __tablename__ = 'user'
    user_id = Column('user_id', Integer, primary_key=True)
    name = Column('name', String(40))
Run Code Online (Sandbox Code Playgroud)

我想知道列名的最大长度是多少,例如来自用户表和用户(声明性类)

print user.name.length
print User.name.length
Run Code Online (Sandbox Code Playgroud)

我试过(User.name.type.length)但它抛出异常

Traceback (most recent call last):
  File "del.py", line 25, in <module>
    print User.name.type.length
  File "/usr/lib/python2.5/site-packages/SQLAlchemy-0.5.6-py2.5.egg/sqlalchemy/orm/attributes.py", line 135, in …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

如何知道raphael对象是否被隐藏?

我正在创建一个图表应用程序,我隐藏并显示一些元素,例如

var c = paper.circle(10, 10, 10);
c.hide()

var c2 = paper.circle(10, 10, 10);
c2.show()
Run Code Online (Sandbox Code Playgroud)

现在我想对这样的形状采取行动,例如计算边界框等,但如果形状被隐藏,我无法找到如何获得?是否有像这样的shape.is_visible()或shape.attr('visible')

javascript raphael

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