小编Eri*_*ric的帖子

如何按声明的顺序读取类属性?

我写一个元类读取类的属性,并将它们存储在列表中,但我想要的清单(cls.columns)尊重声明的顺序(即:mycol2,mycol3,zut,cool,menfin,a在我的例子):

import inspect
import pprint

class Column(object):
    pass

class ListingMeta(type):
    def __new__(meta, classname, bases, classDict):
        cls = type.__new__(meta, classname, bases, classDict)
        cls.columns = inspect.getmembers(cls, lambda o: isinstance(o, Column)) 
        cls.nb_columns = len(cls.columns)
        return cls

class Listing(object):
    __metaclass__ = ListingMeta
    mycol2 = Column()
    mycol3 = Column()
    zut = Column()
    cool = Column()
    menfin = Column()
    a = Column()

pprint.pprint(Listing.columns)
Run Code Online (Sandbox Code Playgroud)

结果:

[('a', <__main__.Column object at 0xb7449d2c>),
 ('cool', <__main__.Column object at 0xb7449aac>), …
Run Code Online (Sandbox Code Playgroud)

python metaclass class

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

如何浏览(没有文本编辑器).rst文件?

在许多django项目中,在docs目录中我可以看到*.rst文件:

浏览它们的最佳方式是什么(当然不使用文本编辑器)?

这有可能生成HTML吗?

django documentation

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

如何使用可选参数构建装饰器?

我想制作一个可以使用或不使用参数的装饰器:这样的东西:

class d(object):
    def __init__(self,msg='my default message'):
        self.msg = msg
    def __call__(self,fn):
        def newfn():
            print self.msg
            return fn()
        return newfn

@d('This is working')
def hello():
    print 'hello world !'

@d
def too_bad():
    print 'does not work'
Run Code Online (Sandbox Code Playgroud)

在我的代码中,只使用带参数的装饰器工作:如何继续工作(有和没有参数)?

python decorator

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

如何调试Jinja2模板?

我正在使用jinja2模板系统进入django.这真的很快,我很喜欢它.不过,我调试模板时遇到了一些问题:如果我在模板中犯了一些错误(错误的标签,坏的filtername,坏的结尾......),我根本没有关于这个错误的信息.

例如,在django视图中,我写这个:

from jinja2 import Environment, PackageLoader
env = Environment(loader=PackageLoader('main', 'templates'))

def jinja(req):
    template = env.get_template('jinja.html')
    output=template.render(myvar='hello')
    return HttpResponse(output)
Run Code Online (Sandbox Code Playgroud)

我写了一个jinja2模板:jinja.html:

{{myvar|notexistingfilter()}} Jinja !
Run Code Online (Sandbox Code Playgroud)

注意,我故意生成一个不存在的过滤器来生成错误:

我期待像"notexistingfilter()未定义"这样的东西,但我只有一个简单的黑色白色追溯(不是通常的django调试消息):

Traceback (most recent call last):

  File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 279, in run

    self.result = application(self.environ, self.start_response)

  File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 651, in __call__
    return self.application(environ, start_response)


  File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/wsgi.py", line 241, in __call__
    response = self.get_response(request)

  File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py", line 134, in get_response

    return self.handle_uncaught_exception(request, resolver, exc_info)

  File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/base.py", line 154, in handle_uncaught_exception
    return debug.technical_500_response(request, *exc_info)


  File "/usr/local/lib/python2.6/dist-packages/django/views/debug.py", line …
Run Code Online (Sandbox Code Playgroud)

python django jinja2

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

如何让Django在模板更改时重启runserver?

当我在项目中的python源文件中进行修改时,Django检测到并重启runserver本身.但是当我修改django模板时,我必须杀死runserver并重新启动它:如何在模板更改时自动重启runserver?

django templates

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

eclipse启动插件安装非常慢

我在项目中使用eclipse.

当我想安装或更新插件时,计算依赖关系(大约5到10分钟)非常慢,然后下载文件并安装它们很快.

你知道怎么解决这个问题吗?

它在Ubuntu 10.04上有最新补丁+ eclipse 3.6.1

没有代理使用.我注意到家里有几台电脑的问题,但是我在工作中没有这个问题(我在工作时使用代理)

eclipse

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

如何看到生成django模板变量的异常?

在Django模板中,可以调用这样的对象方法:

{{ my_object.my_method }}
Run Code Online (Sandbox Code Playgroud)

问题是当你在'def my_method(self)'中遇到异常/错误时,它在渲染模板时被隐藏(相反,有一个空字符串输出,因此不会出现错误).

因为我想调试'def my_method(self)'中的错误,我想打开类似全局django标志的东西来接收这样的异常.

在settings.py中,我已经有了

DEBUG = True 
TEMPLATE_DEBUG = True
Run Code Online (Sandbox Code Playgroud)

我可以接收多种模板异常,但是当我触发对象方法时没有.

我能做什么 ?

python django django-templates

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

为什么ruby 1.9比python 2.7和3.2更快?

我读了这一堆链接:http://pack.li/L

ruby 1.9似乎比1.8快2倍,比python 2.7和3.2快

我做了一些测试,它不仅仅是递归(我知道python对此很糟糕),也提供更多标准的东西.

所以这是我的问题:红宝石团队是如何做到的?2倍改善?它们是否包含JIT编译器/优化器或其他东西?

ruby python performance

10
推荐指数
3
解决办法
2万
查看次数

在Python中用html转换为.doc转换器?

我正在使用pisa,这是一个用于Python的HTML到PDF转换库.

对于Word文档是否存在相同的东西:用于Python的HTML到.doc转换库?

python ms-word pisa

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

mod_evasive for nginx?

我正在使用mod_evasive来管理DOS的apache,也就是说它会在delta时间内自动黑名单,这些IP会执行太多的http查询.

它是否存在于nginx上?

apache nginx mod-evasive

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