小编Bel*_*dez的帖子

为什么Django的每站点缓存中间件不能为我工作?

我正在使用Django 1.3 beta 1并设置memcached.我对settings.py每个Django的指令进行了更改:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
    }
}

MIDDLEWARE_CLASSES = (
    'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',
    #'debug_toolbar.middleware.DebugToolbarMiddleware',
)
CACHE_MIDDLEWARE_SECONDS = 100000
CACHE_MIDDLEWARE_KEY_PREFIX = 'site_cache'
Run Code Online (Sandbox Code Playgroud)

这是我正在尝试的测试视图功能:

def home(request):

    print 'uncached'

    # ...View's code...
Run Code Online (Sandbox Code Playgroud)

我总是uncached打印在开发服务器的输出上,我总是得到数据库的命中.为什么?我是否遗漏了某些内容或者完全误解了缓存?

编辑#1:

模板片段缓存工作完全正常.我只是错过了一些东西吗?请帮忙.

python django memcached django-middleware django-cache

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

Django:从GET请求生成查询集

我使用GET方法设置了Django表单.每个值对应于Django模型的属性.什么是生成查询的最优雅方式?目前这是我在视图中所做的:

def search_items(request):
    if 'search_name' in request.GET:
        query_attributes = {}

        query_attributes['color'] = request.GET.get('color', '')
        if not query_attributes['color']: del query_attributes['color']

        query_attributes['shape'] = request.GET.get('shape', '')
        if not query_attributes['shape']: del query_attributes['shape']

        items = Items.objects.filter(**query_attributes)
Run Code Online (Sandbox Code Playgroud)

但我很确定有更好的方法可以解决这个问题.

django django-queryset django-views

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

在Django中,我何时应该使用doctests而不是单元测试?

来自Django文档:

...数据库不会在doctests之间刷新,所以如果你的doctest需要某个状态,你应该考虑刷新数据库或加载一个fixture.

坦率地说,90%的测试目前都是在doctests中完成的.我的一位同事认为这是特殊的.老实说,我做的测试很少,所以我不会假装成为那个领域的大师.

在决定如何测试时,有没有人有他们使用的经验法则?

非SO回答

我的一位同事建议通过单元测试来测试模型函数和约束作为doctests和views.根据经验,这听起来怎么样?

python testing django doctest unit-testing

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

Django:将模型字段标记为模板安全的最佳实践

现在我必须做类似(模板代码)的事情:

object.name|safe
Run Code Online (Sandbox Code Playgroud)

很多时候我只是忘记添加safe过滤器。我的问题:

  1. 这些对象是用户在表单级别提交和清理的。是否有理由让我更小心地将它们标记为安全?

  2. 如果上面的答案是“你很高兴”,我如何在默认情况下使模型字段安全?无需记住使用safe标签?

python django django-templates django-models

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

如何定义一个空变量来存储 File 结构的值?

我试图找出一种方法来声明一个空变量来存储os.Createand的返回值os.Open。代码:

func main() {

  var path = "list.txt"
  // Some attempts:
  // var file File{}
  // var file *File

  // Check if file exists
  var _, err = os.Stat(path)

  // If new file, create it
  if os.IsNotExist(err) {
    var file, err = os.Create(path)

    // If file exists, open it
  } else {
    var file, err = os.Open(path)
  }

  // Check errors opening and creating file
  if err != nil {
    log.Fatal(err)
    return
  }

  // Defer closing …
Run Code Online (Sandbox Code Playgroud)

go

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

Python:安装鸡蛋时的权限问题

尝试使用easy_install在整个站点安装.但是我有权限问题:

drwxr-x---   2 root root   4096 Nov  8 10:23 South-0.7.2-py2.6.egg-info
Run Code Online (Sandbox Code Playgroud)

然后我尝试用pip安装它,但收到了相同的结果.

我假设我可以通过更改权限来解决这个问题.但是,我在安装过程中做错了什么?或者包装有问题吗?

评论的答案

iddqd:请发送输出.sudo pip install -e hg + http://bitbucket.org/andrewgodwin/south/

结果如下:

$ sudo pip-python install -e hg+http://bitbucket.org/andrewgodwin/south/
--editable=hg+http://bitbucket.org/andrewgodwin/south/ is not the right format; it must have #egg=Package
Run Code Online (Sandbox Code Playgroud)

python egg setuptools distribute

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

模型对象的混淆 Django URL

我有一个看起来像这样的 Django 模型:

class Person(models.Model):

    name = models.CharField(max_length=32)
    place = models.ForeignKey(Place, related_name='people')
    approved = models.BooleanField()
    objects = PersonManager()

    @models.permalink
    def get_absolute_url(self):
        return('deal_details', (), {
            'person_slug': slugify(self.name),
        })
Run Code Online (Sandbox Code Playgroud)

如您所见,我已经有了对象的绝对 URL。但是,我想创建一个难以猜测的 URL 来跟踪对象的批准过程。有人做过类似的事情和/或对我应该如何进行有任何建议吗?

我的第一个想法是创建一个像obfuscated_key这样的模型字段,它是通过save模型函数随机生成。然后 URL 看起来像/people/status/<id>/<obfuscated_key>/. 但也许有更好的方法来解决这个问题?

django obfuscation django-urls

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

通过管理站点修改Django CharField时发送电子邮件通知

我有一个通常为空的CharField.mail_managers当字段设置为非空值时,我想向所有管理员发送电子邮件通知(使用).只有通过管理站点才能对此字段进行更改.

我认为这可能是我可以通过信号做的事情,但我没有看到文档中列出的适当信号.有任何想法吗?

django django-signals django-admin

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

Django:将整个模板封装在无空间标签中?

它会消除空白.但是,除了可读性差外,我应该注意哪些潜在的风险?

这是标签的Django文档.

python django django-templates

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

缓存日历日期的Django查询集

我有一个查询,结果每天只改变一次.对于我为该页面获得的每个请求来说,这似乎是一种浪费.我正在调查使用memcached.

我该怎么开始?任何人都有任何建议或陷阱我应该避免使用Django的缓存?我应该在模板或视图中缓存吗?

这个问题可能看起来很模糊,但这只是因为我以前从未处理过缓存.所以,如果有什么东西我可以详细说明,只问.

Per Ken Cochrane:

  1. 此数据的更改频率如何:相关数据将在该日历日期锁定.因此,举例来说,我将提取2011年1月30日的数据,我可以整天提供缓存副本,直到2011年1月31日,它将被刷新.

  2. 我是否在多个地方使用此数据:仅在一个视图中.

  3. 它将包含多少数据:平均包含大约15个字段的10个模型对象,其中最大的是a CharField(max_length=120).我会将使用的字段数减少values()到大约一半.

python django memcached django-cache django-queryset

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

JASIG CAS:如何更改日志文件的写入位置?

我知道非常少有关Java,更不用说JASIG CAS.

我们正在尝试在CentOS 6服务器上实施CAS.我们收到以下错误:

java.io.FileNotFoundException: cas.log (Permission denied)
[...snip...]
java.io.FileNotFoundException: perfStats.log (Permission denied)
Run Code Online (Sandbox Code Playgroud)

经过一番调查,似乎tomcat6是在尝试在其主目录(/usr/share/tomcat6/)中写入日志文件.我能够确定这个chown tomcat: /usr/share/tomcat6,然后在重新启动后,在该目录中创建了日志文件.

所有其他日志都写入/usr/share/tomcat6/logs了符号链接/var/log/tomcat6.

我想知道如何重新配置​​CAS以将这2个日志文件写入不同的目录/usr/share/tomcat6/logs)?

java tomcat cas tomcat6 jasig

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

Django模板:仅在将来显示日期

如何比较Django模板中的日期?我想到了几种可能的途径:

  • 在上下文中发送今天的日期以在模板中进行比较
  • 创建我自己的模板标签
  • 在视图中有一些逻辑只能传递日期,如果它在将来

虽然最后一个选项看起来更容易,但我宁愿将显示逻辑留在模板中而不是视图中.我也不想在模板上下文中传递像今天日期那样微不足道的东西.

也许某人有另一种选择,或者可以分享他们对我上面提到的选项之一的实施,以及为什么他们决定走这条路.

python django datetime django-templates

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

在Python正则表达式中,如何忽略捕获组内的表达式?

我有一个看起来像这样的字符串:

<name>-<gender>-<age>.jpg
Run Code Online (Sandbox Code Playgroud)

就我所接受的而言,我想要非常自由.要求是:

  1. <name>组件是必需的.
  2. 必须具有.jpg文件扩展名
  3. 只要最终结果是以下排列之一,您可以将组件留空或完全保留:
    • <name>.jpg
    • <name>-<gender>.jpg
    • <name>-<gender>-<age>.jpg

被认为有效的例子:

Beamin-M.jpg
Jean.jpg
Maria-F-23.jpg
Run Code Online (Sandbox Code Playgroud)

我想使用正则表达式分解字符串的每个组件,但我不想捕获短划线(-).我尝试使用非捕获组,但无法获得我正在寻找的结果:

>>> import re
>>> r = re.compile(r'([^\-]*)((?:\-)[^\-]*)?((?:\-)[^\-]*)?\.jpg')
>>> for d in (
...  'Beamin-M.jpg',
...  'Jean.jpg',
...  'Maria-F-23.jpg',
... ):
...  print r.match(d).groups()
...
('Beamin', '-M', None)
('Jean', None, None)
('Maria', '-F', '-23')
Run Code Online (Sandbox Code Playgroud)

有没有人有什么建议?

python regex

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