我写一个元类读取类的属性,并将它们存储在列表中,但我想要的清单(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) 在许多django项目中,在docs目录中我可以看到*.rst文件:
浏览它们的最佳方式是什么(当然不使用文本编辑器)?
这有可能生成HTML吗?
我想制作一个可以使用或不使用参数的装饰器:这样的东西:
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)
在我的代码中,只使用带参数的装饰器工作:如何继续工作(有和没有参数)?
我正在使用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检测到并重启runserver本身.但是当我修改django模板时,我必须杀死runserver并重新启动它:如何在模板更改时自动重启runserver?
我在项目中使用eclipse.
当我想安装或更新插件时,计算依赖关系(大约5到10分钟)非常慢,然后下载文件并安装它们很快.
你知道怎么解决这个问题吗?
它在Ubuntu 10.04上有最新补丁+ eclipse 3.6.1
没有代理使用.我注意到家里有几台电脑的问题,但是我在工作中没有这个问题(我在工作时使用代理)
在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)
我可以接收多种模板异常,但是当我触发对象方法时没有.
我能做什么 ?
我读了这一堆链接:http://pack.li/L
ruby 1.9似乎比1.8快2倍,比python 2.7和3.2快
我做了一些测试,它不仅仅是递归(我知道python对此很糟糕),也提供更多标准的东西.
所以这是我的问题:红宝石团队是如何做到的?2倍改善?它们是否包含JIT编译器/优化器或其他东西?
我正在使用pisa,这是一个用于Python的HTML到PDF转换库.
对于Word文档是否存在相同的东西:用于Python的HTML到.doc转换库?
我正在使用mod_evasive来管理DOS的apache,也就是说它会在delta时间内自动黑名单,这些IP会执行太多的http查询.
它是否存在于nginx上?