Tag: python

我怎样才能unit testingDjango的消息?

在我的Django应用程序中,我试图编写一个unit testing来执行一个动作,然后检查响应中的消息。 据我所知,没有这样做的好方法。 我正在使用CookieStorage存储方法,我想要做类似于以下的事情: response = self.client.post('/do-something/', follow=True) self.assertEquals(response.context['messages'][0], "fail.") 问题是,我所有的回报是 print response.context['messages'] <django.contrib.messages.storage.cookie.CookieStorage object at 0x3c55250> 我怎么能把这个变成有用的东西呢,还是我做错了? 谢谢Daniel

如何正确设置VIM自动缩进来编辑Python文件 – * .py

我麻烦设置VIM(7.1.xxx)编辑python文件。 缩进似乎被破坏(最佳4个空格)。 我跟着我通过Googlefind的一些教程。 仍然没有效果:/请帮助。

Django模型字段validation

模型字段的validation应该在django中进行? 我可以命名至less两个可能的select:在模型的重载.save()方法或models.Field子类的.to_python()方法中(显然是为了工作,您必须编写自定义字段)。 可能的用例: 当绝对需要确保空string不会写入数据库时​​(空白= False关键字参数在这里不起作用,仅用于表单validation) 当需要确保时,“select”关键字参数在数据库级别上得到了尊重,而不仅仅在pipe理接口(类似于模拟枚举数据types) 在models.Field基类定义和派生类中也有一个类级属性empty_strings_allowed ,但它似乎并没有对数据库级别产生任何影响,这意味着我仍然可以用空string构造一个模型字段并将其保存到数据库。 我想避免(是的,这是必要的)。 可能的实现是 在现场层面: class CustomField(models.CharField): __metaclass__ = models.SubfieldBase def to_python(self, value): if not value: raise IntegrityError(_('Empty string not allowed')) return models.CharField.to_python(self, value) 在模型层面: class MyModel(models.Model) FIELD1_CHOICES = ['foo', 'bar', 'baz'] field1 = models.CharField(max_length=255, choices=[(item,item) for item in FIELD1_CHOICES]) def save(self, force_insert=False, force_update=False): if self.field1 not in MyModel.FIELD1_CHOICES: […]

Python 3和静态types

我没有真正把注意力放在Python 3的开发上,而只是注意到了一些有趣的新的语法变化。 具体从这个SO回答函数参数注释: def digits(x:'nonnegative number') -> "yields number's digits": # … 不知道这件事情,我认为它可能被用来在Python中实现静态input! 经过一番search之后,似乎有很多关于(完全可选的)Python中的静态types的讨论,比如PEP 3107中提到的“添加可选静态types到Python” (和第2部分 ) 但是,我不清楚这个进展有多远。 有静态types的任何实现,使用参数注释? 有没有参数化types的想法使它成为Python 3?

Pythoninheritance:TypeError:object .__ init __()不带任何参数

我得到这个错误: TypeError: object.__init__() takes no parameters 当运行我的代码时,我并不真正看到我在这里做错了什么: class IRCReplyModule(object): activated=True moduleHandlerResultList=None moduleHandlerCommandlist=None modulename="" def __init__(self,modulename): self.modulename = modulename class SimpleHelloWorld(IRCReplyModule): def __init__(self): super(IRCReplyModule,self).__init__('hello world')

Django芹菜测井最佳实践

我试图让芹菜日志与Django工作。 我有settings.py日志设置去控制台(工作正常,因为我在Heroku托pipe)。 在每个模块的顶部,我有: import logging logger = logging.getLogger(__name__) 在我的tasks.py中,我有: from celery.utils.log import get_task_logger logger = get_task_logger(__name__) 这对logging来自任务的调用工作正常,我得到这样的输出: 2012-11-13T18:05:38+00:00 app[worker.1]: [2012-11-13 18:05:38,527: INFO/PoolWorker-2] Syc feed is starting 但是,如果该任务然后在另一个模块中调用方法,例如queryset方法,则会得到重复的日志条目,例如 2012-11-13T18:00:51+00:00 app[worker.1]: [INFO] utils.generic_importers.ftp_processor process(): File xxx.csv already imported. Not downloaded 2012-11-13T18:00:51+00:00 app[worker.1]: [2012-11-13 18:00:51,736: INFO/PoolWorker-6] File xxx.csv already imported. Not downloaded 我想我可以使用 CELERY_HIJACK_ROOT_LOGGER = False 只是使用Django日志logging,但是当我尝试它时,这并不起作用,即使我确实得到它,我会失去我想要的"PoolWorker-6"位。 (顺便说一下,我不知道如何让任务名称显示在从芹菜的日志条目,因为文档似乎表明它应该)。 […]

运行“sudo pip”有什么风险?

偶尔我会遇到意见或回应 ,强调在sudo下运行pip是“错误的”或“不好的”,但有些情况(包括我设置了一堆工具的方式)要么简单得多,要么甚至更简单必须以这种方式运行。 在sudo下运行pip有什么风险? 请注意,这个问题与这个问题不一样,尽pipe标题没有提供关于风险的信息。 这也不是一个关于如何避免使用sudo ,而是关于为什么要使用sudo 。

__init__ for unittest.TestCase

我想添加一些东西,什么unittest.TestCase类做初始化,但我不知道如何做到这一点。 现在我正在做: #filename test.py class TestingClass(unittest.TestCase): def __init__(self): self.gen_stubs() def gen_stubs(self): # Create a couple of tempfiles/dirs etc etc. self.tempdir = tempfile.mkdtemp() # more stuff here 我希望所有的存根都能在这整套testing中只产生一次。 我不能使用setUpClass()因为我正在使用Python 2.4(我还没有能够得到在Python 2.7上工作,但…) 我在这里做错了什么? 我得到一个TypeError: __init__() takes 1 argument (2 given) 和其他错误,当我将所有的存根代码移动到__init__时,我用python -m unittest -v test

如何在django中设置自定义中间件

我正在尝试创build中间件来select性地将kwarg传递给满足条件的每个视图。 问题是我找不到如何设置中间件的例子。 我已经看到了重写我想要的方法process_view的类: Class CheckConditionMiddleware(object): def process_view(self, request): return None 但是我把这个课程放在哪里? 我是否创build了一个中间件应用程序,并将其放入其中,然后在settings.middleware中引用它?

与副本的Numpy数组赋值

例如,如果我们有一个numpy数组A ,并且我们想要一个具有相同元素的numpy数组B 这些方法有什么区别? 何时分配额外内存,何时不是? B = A B[:] = A (与B[:]=A[:] ?相同) numpy.copy(B, A)