小编gur*_*lex的帖子

如何将forloop.counter连接到我的django模板中的字符串

我已经尝试连接这样的:

{% for choice in choice_dict %}
    {% if choice =='2' %}
        {% with "mod"|add:forloop.counter|add:".html" as template %}
            {% include template %}
        {% endwith %}                   
    {% endif %}
{% endfor %}    
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,我只得到"mod.html"而不是forloop.counter号码.有谁知道发生了什么以及我可以做些什么来解决这个问题?非常感谢!

python django for-loop string-concatenation django-templates

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

指定要为哪个python版本的pylint进行评估

我正在使用Sublime Text 3 With Pylinter来运行pylint我的文件.

但是,在同一台机器上,我处理python 2和python 3项目的文件(代码在几个远程测试VM中的一个上通过SSH执行.我通过在SMB上打开它来修改文件.是我的家庭测试实验室,我终于坐下来学习py3k了.

我可以轻松地覆盖pylint用于确定它应该lint的python版本的机制吗?理想情况下,会有一个内联指令,但我找不到任何好运.

我在Windows上(编辑)(远程虚拟机是linux,但这里不相关),这是值得的.

python pylint python-3.x

19
推荐指数
3
解决办法
9757
查看次数

什么可以导致pdb.set_trace()被忽略?

我正在尝试调试Python程序,我在一个函数中插入了一个经典的'import pdb; pdb.set_trace()'行,就在生成堆栈跟踪的调用之前.然而,该调用似乎被忽略,即没有任何反应,我没有得到pdb提示.

在程序的那一点,只有一个活动线程.没有检测到pdb模块的猴子修补.

欢迎任何可能导致调用set_trace被忽略的帮助.谢谢.

平台信息:Debian squeeze + python 2.6.5

代码提取:

import threading
print threading.active_count()
import pdb
print pdb
pdb.set_trace()
print "*****"
root_resource.init_publisher() # before changing uid
Run Code Online (Sandbox Code Playgroud)

输出:

<lots of stuff>
1
<module 'pdb' from '/usr/lib/python2.6/pdb.pyc'>
*****
<stack trace in init_publisher>
Run Code Online (Sandbox Code Playgroud)

python debugging

11
推荐指数
2
解决办法
6991
查看次数

如何使用emacs拼写检查python docstring?

我想在我的Python代码的文档字符串上运行拼写检查,如果可能的话,从emacs中.

我找到了ispell-check-comments设置,可用于拼写仅检查代码中的注释,但我无法仅针对特定python特定事物的文档字符串.

python emacs spell-checking docstring

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

使用Python 2.x中的'is'运算符将对象与空元组进行比较

if obj is None:以前在Python 看过,我最近遇到过 if obj is ():.由于元组不可变,因此在Python解释器中听起来像是一个合理的内部优化,因为空元组是单个元素,因此允许使用is而不是要求==.但这有保证吗?从哪个版本的翻译?

[编辑]问题很重要因为if()不是单例并且有一种方法可以生成一个具有不同地址的空元组,那么使用is {}就是一个bug.如果仅在Python 2.x之后保证x> 0,那么如果需要确保代码的向后兼容性,则必须知道x的值.在使用pypy/jython/ironpython时,知道这是否会破坏你的代码也很重要...

python

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

短信非ASCII字符编码

我有一部诺基亚N900手机,当发送短信时,小部件会显示消息中剩余的字符数(以及发送整条消息所需的实际短消息数).

我住在法国,在用非ASCII字符编写邮件时,我注意到以下奇怪的事情:

  • 一些非ASCII字符编码在一个字符/字节上,例如"é","è","à","ù"
  • 某些非ASCII字符(如"ç","ê","ô")的存在会消耗固定数量的90个字符/字节+每个字符1个字节
  • 第二个"ç","ê"等的存在仅消耗1个额外字节.

所以我想知道消息是如何编码的,因为我看不到上面的方案与我所知的传统编码(iso-8859-1,UTF-8,UTF-16 ......)相匹配.

sms character-encoding

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

在Python中不推荐使用类作为父类

我正在使用Python 2.x框架,并且该框架的最新版本已经将一些广泛使用的基类从一个模块移动到另一个A模块B(并且该类已经在该过程中被重命名为更清晰的名称).模块A为新类名定义了向后兼容的标识符.

B.py:

class BaseClass(object):
    __metaclass__ = framework_meta # handles registration etc.
Run Code Online (Sandbox Code Playgroud)

A.py:

import B
oldbase = B.BaseClass
Run Code Online (Sandbox Code Playgroud)

现在,为了帮助人们迁移他们的代码,我希望能够发出一个DeprecationWarning(使用warnings.warn),只要使用框架的代码定义了一个派生于A.oldbase告诉程序员直接继承的类B.BaseClass.

我希望这可以通过元类来实现.我试图声明一个从框架元类派生的新元类

class deprecated_base_class(framework_meta):
    def __new__(meta, name, bases, attrs):
        warning = '%(class)s is deprecated'
        for b in bases:
            warning =  getattr(b, '__deprecation_warning__', None) or warning
        warn(warning % {'class': name}, DeprecationWarning, stacklevel=2)
        return super(deprecated_base_class, meta).__new__(meta, name, bases, attrs)
Run Code Online (Sandbox Code Playgroud)

和...一起:

A.py:

class oldbase(B.BaseClass):
    __metaclass__ = deprecated_base_class
    __deprecation_warning__ = 'class oldbase is deprecated. …
Run Code Online (Sandbox Code Playgroud)

python inheritance metaclass

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

三维表面的凸包算法z = f(x,y)

我有给定为一组的三元组的3D表面(X_I,Y_I,z_i),其中X -1和Y_I大致在网格上,并且每个(X_I,Y_I)具有单个关联z_i值.典型的网格是20x20

我需要在给定的公差范围内找到哪些点属于表面的凸包.我正在寻找一种有效的算法来执行计算(我的客户提供了一个O(n³)版本,在400点数据集上需要大约10秒......)

algorithm 3d complexity-theory convex-hull

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

在Python中支持/反对`raise Exception(message)`的参数

我正在使用一个框架,源代码Exception在几个地方使用类(而不是子类,特定于框架或来自stdlib)引发异常,这在我看来并不是一个好主意.

反对这个成语的主要论点是它强制调用者使用except Exception:哪个可以捕获超出其意义的东西,因此在较低的堆栈级别隐藏问题.

然而,在Python文档中的快速搜索没有提出反对这种做法的论据,并且在教程中甚至有这样的例子(尽管Python脚本中的一些可能在我的Python框架中完全没有问题)意见).

那么被raise Exception认为是pythonic?

python coding-style

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

OpenERP安装问题

我在我的本地服务器上安装openerp,我已经安装了它和它的依赖,但在完成安装后我运行服务器'openerp-server'并使用0.0.0.0:8069/访问它.我收到以下错误

OpenERP Server Error

Client Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/openerp-7.0_20130211_002141-py2.7.egg/openerp/addons/web/http.py", line 195, in dispatch
    response["result"] = method(self, **self.params)
  File "/usr/local/lib/python2.7/dist-packages/openerp-7.0_20130211_002141-py2.7.egg/openerp/addons/web/controllers/main.py", line 709, in get_list
    return db_list(req)
  File "/usr/local/lib/python2.7/dist-packages/openerp-7.0_20130211_002141-py2.7.egg/openerp/addons/web/controllers/main.py", line 88, in db_list
    dbs = proxy.list()
  File "/usr/local/lib/python2.7/dist-packages/openerp-7.0_20130211_002141-py2.7.egg/openerp/addons/web/session.py", line 31, in proxy_method
    result = self.session.send(self.service_name, method, *args)
  File "/usr/local/lib/python2.7/dist-packages/openerp-7.0_20130211_002141-py2.7.egg/openerp/addons/web/session.py", line 104, in send
    raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)


Server Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/openerp-7.0_20130211_002141-py2.7.egg/openerp/addons/web/session.py", line 90, in send
    return openerp.netsvc.dispatch_rpc(service_name, method, args)
  File "/usr/local/lib/python2.7/dist-packages/openerp-7.0_20130211_002141-py2.7.egg/openerp/netsvc.py", line …
Run Code Online (Sandbox Code Playgroud)

python openerp

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

Pylint中的永久配置文件

我为Pylint设置了一个自定义配置文件(名称,方便,配置).必须有一种方法,我不必包括--rcfile=config在每次运行.如何永久设置配置文件?

macos pylint configuration-files

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

Python线程:无法启动新线程

我正在尝试运行此代码:

def VideoHandler(id):
    try:
        cursor = conn.cursor()
        print "Doing {0}".format(id)
        data = urllib2.urlopen("http://myblogfms2.fxp.co.il/video" + str(id) + "/").read()
        title = re.search("<span class=\"style5\"><strong>([\\s\\S]+?)</strong></span>", data).group(1)
        picture = re.search("#4F9EFF;\"><img src=\"(.+?)\" width=\"120\" height=\"90\"", data).group(1)
        link = re.search("flashvars=\"([\\s\\S]+?)\" width=\"612\"", data).group(1)
        id = id
        print "Done with {0}".format(id)
        cursor.execute("insert into videos (`title`, `picture`, `link`, `vid_id`) values('{0}', '{1}', '{2}', {3})".format(title, picture, link, id))
        print "Added {0} to the database".format(id)
    except:
        pass

x = 1
while True:
    if x != 945719:
        currentX = x
        thread.start_new_thread(VideoHandler, (currentX))
    else:
        break
    x …
Run Code Online (Sandbox Code Playgroud)

python

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