小编Ben*_*Ben的帖子

Pro Django书还有用吗?

我想更深入地了解Django的内部结构,官方的在线文档只是朝这个方向发展.

对Marty Alchin的Pro Django的评论非常棒(我读过Pro Python并且非常喜欢它).但是,这本书是从2008年开始的,基于Django v1.0.我的公司建立了v1.3.

这本书还值得吗?我怎样才能最好地了解Django的元编程(除了查看源代码,我也在做)?

谢谢

python django metaprogramming

12
推荐指数
2
解决办法
2217
查看次数

Django {{site}}模板上下文不起作用?

这应该是一个非常简单的.我很确定我以前在我的模板中成功使用了这个上下文来进行链接.我的信念是,这是以某种方式或其他方式构建到RequestContext实例中的.

我的设置文件中的SITE_ID记录是正确的.我为我的所有视图都包含了一个RequestContext实例,并且我已经包含了contrib.auth应用程序,在这种情况下可能是相关的.

{{site}}上下文是以某种方式构建的,还是应该查询实例的Sites对象?

谢谢大家,布兰登

django django-templates django-context

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

Python到Objective C(预期学习曲线)

我是一名自学成才的程序员,大约在7-8个月前跳入Python作为我的第一语言.虽然我的基础知识有限,但是由于我在大学时对于不学习计算机科学的可疑选择,我的工作能力相当稳定.

除了Python之外,我对C或其他低级语言并不熟悉.

我想教自己Objective C作为对iPhone应用程序编程的尝试(最初作为一种兴趣).我最初想要创建相对简单的实用程序应用程序(我认为它们至少相对​​简单).

任何人都可以猜测我可以花多长时间拿起Objective C并实际生产一个半体面的应用程序?如果时间至关重要,我应该废弃它并使用HTML5吗?

我选择的速度相当快,但同样,我在Comp Sci的背景非常有限.

对不起,如果这个问题有点过于笼统,感谢任何见解!

c python iphone objective-c

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

Python在功能级别VS导入.模块级别

如有疑问,我通常会将导入语句放在模块的顶部.通常,这会减少重复,这很好.但是,在只有一个函数(或类)需要导入的情况下,是否存在性能下降?

在调用函数时,是否只导入以下内容?

     def func():
         from task import test
Run Code Online (Sandbox Code Playgroud)

如果是这样,我想这可能是一个微小的效率.我还假设你可以为更快的垃圾收集和变量作用域获得一些附加点,因为导入的对象不会被添加到全局字典中.正如另一张海报很好地说:

这主要是由于查找变量.查找全局范围中的变量需要查找字典.相反,编译器静态地确定本地名称并通过索引引用它们,因此不需要查找字典.

那些公平的假设是我完全偏离基础吗?

谢谢

python import scope

8
推荐指数
2
解决办法
7043
查看次数

查询Mongo中的嵌套列表存在

我在Mongo中有一个文档,其结构如下:

{ 
    "_id" : ObjectId("4eea7237d0ba3a04f20008fb"), 
    "code" : "b2677c2809c844cc9d7e3e4ff8d95b46", 
    "city_id" : 4, 
    "datetime" : ISODate("2011-12-13T18:41:44.062Z"), 
    "plays" : [     
        {   
          "play_id" : 717224,   
          "clicks" : [ ],   
          "order" : 1,  
          "mysql_id" : 145
        }
Run Code Online (Sandbox Code Playgroud)

我想查询其plays.clicks属性是非空列表的文档.我试过没有运气的存在.我认为这样的事情可能有用:

 db.collection.find({plays.clicks.0: {$exists:true}})
Run Code Online (Sandbox Code Playgroud)

但我相信这只会返回播放数组中第一个元素包含非空单击列表的文档.

我是怎么想到这件事的?

谢谢

javascript mongodb nosql

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

使用decode()与regex来解除此字符串的转换

我有以下字符串,我正在试图找出解决它的最佳做法.

解决方案必须有点灵活,因为我从API接收此输入,并且我不能完全确定当前的字符结构(\n相对于\r)将始终是相同的.

'"If it ain\'t broke, don\'t fix it." \nWent in for a detailed car wash.\nThe attendants raved-up my engine when taking the car into the tunnel. NOTE: my car is...'

这个正则表达式似乎应该工作:

text_excerpt = re.sub(r'[\s"\\]', ' ', raw_text_excerpt).strip()
Run Code Online (Sandbox Code Playgroud)

我已经阅读过decode()可能有用的内容(并且通常会成为更好的解决方案).

raw_text_excerpt.decode('string_unescape')
Run Code Online (Sandbox Code Playgroud)

尝试了这些方面的东西,它没有奏效.有什么建议?正则表达式在这里最好吗?

python regex string decode escaping

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

子类化Django UpdateCacheMiddleware和FetchFromCacheMiddleware的技术

我已经使用UpdateCacheMiddlewareFetchFromCacheMiddlewareMiddleWare来实现站点范围的匿名缓存,以获得不同程度的成功.

最大的问题是中间件只缓存匿名用户的第一个请求.由于在第一个响应上设置了session_id cookie,因此匿名用户的后续请求不会因为Headers上的视图级缓存变化而到达缓存.

我的网页在匿名用户中没有显着差异,并且只要它们有所不同,我可以通过Ajax处理.结果,我决定尝试将Django的缓存中间件子类化为不再改变Header.相反,它在Anonymous vs. LoggedIn Users上有所不同.因为我正在使用Auth后端,并且该处理程序在从缓存中获取之前发生,所以它似乎有效.

class AnonymousUpdateCacheMiddleware(UpdateCacheMiddleware):

    def process_response(self, request, response):
        """
        Sets the cache, if needed.
        We are overriding it in order to change the behavior of learn_cache_key().
        """

        if not self._should_update_cache(request, response):
            # We don't need to update the cache, just return.
            return response
        if not response.status_code == 200:
            return response

        timeout = get_max_age(response)
        if timeout == None:
            timeout = self.cache_timeout
        elif timeout == 0:
            # max-age was set to 0, don't …
Run Code Online (Sandbox Code Playgroud)

django caching middleware django-views

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

有条件的order_by语句,Django

我想要合并一个允许多个排序变量的排序功能.

我试图传递.order_by()函数但是当我尝试包含多个字段时它会一直失败.我该怎么做呢?

if request.GET.get('size_sort')=='1':
        def sorts():
            sort='\'bedrooms\',\'bathrooms\''
            return sort
        posts=Post.objects.filter(**keyword_args).order_by(sorts())
Run Code Online (Sandbox Code Playgroud)

这将返回回溯:

   Invalid order_by arguments: ["'bedrooms','bathrooms'"] 
Run Code Online (Sandbox Code Playgroud)

django django-models

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

Django电子邮件后端(不断发送来自错误"发件人"的电子邮件)

我的项目中有几个实例,我尝试在Django视图中发送电子邮件.

我希望能够在视图中对电子邮件发件人进行硬编码.但是,当我尝试这样做时,它会继续从我的设置文件中指定的默认帐户发送电子邮件.

这是一个例子:

        if testform.is_valid():
            beta=testform.save()
            subject="Hi Beta Tester"  
            sender="correct@email.com"

            recipient=[testform.cleaned_data['email']]

            text=loader.get_template('registration/beta_email.txt')
            html=loader.get_template('registration/beta_email.html')

            site_name='mysite'
            d=Context({'site_name':site_name})
            text_content=text.render(d)
            html_content=html.render(d)
                #This sends two mail versions, plain text and html
            msg=EmailMultiAlternatives(subject, text_content, sender, recipient)
            msg.attach_alternative(html_content, "text/html")
            msg.send()

            return HttpResponseRedirect('/splash/')
Run Code Online (Sandbox Code Playgroud)

我以为我可以在这里明确指定sender参数.然而,当我测试它时,电子邮件是从我的设置文件中列出的地址发送的,配置如下:

       EMAIL_USE_TLS=True

       EMAIL_HOST='smtp.gmail.com'

       EMAIL_HOST_USER='wrong@email.com'

       EMAIL_HOST_PASSWORD='private'

       DEFAULT_FROM_EMAIL='wrong@email.com'
Run Code Online (Sandbox Code Playgroud)

我是否只需删除DEFAULT_FROM_EMAIL常量即可使其正常工作?我试过这样做,似乎工作但我很困惑.在Django文档中,它建议在视图中设置发送者应该覆盖DEFAULT.

email django email-integration

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

将Unicode对象转换为Python Dict

我正在处理的请求对象具有键"地址"的以下值:

  u"{u'city': u'new-york', u'name': u'Home', u'display_value': u'2 Main Street'}"
Run Code Online (Sandbox Code Playgroud)

我需要将这个unicode对象作为字典进行操作.不幸的是,json.loads()失败,因为它不是json兼容的对象.

有什么方法可以解决这个问题吗?我是否必须使用json.JSONDecoder对象?

python serialization json

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