小编Zac*_*ack的帖子

JSON使用simplejson序列化Django模型

我想使用simplejson来序列化Django模型.Django的序列化程序不支持字典...而simplejson不支持Django Querysets.这是一个相当难的问题.

在该模型中,赞助商拥有赞助级别的外键,我试图将所有属于某个赞助商级别的赞助商组合在一起.这是生成列表的代码:

from django.shortcuts import get_list_or_404
from special_event.models import Sponsor, SponsorLevel

sponsor_dict = {}

roadie_sponsors = get_list_or_404(Sponsor, level__category = SponsorLevel.ROADIE_CHOICE)

for item in roadie_sponsors:
    try:
        sponsor_dict[item.level.name].append(item)
    except KeyError:
        sponsor_dict[item.level.name] = [item]
Run Code Online (Sandbox Code Playgroud)

sponsor_dict一旦它"制造",这就是它的样子

{
    'Fan': [<Sponsor: Fan Sponsor>], 
    'VIP': [<Sponsor: VIP Sponsor>],
    'Groupie': [<Sponsor: Groupie Sponsor>],
    'Silver': [<Sponsor: Silver Sponsor>],
    'Bronze': [<Sponsor: Another Bronze Sponsor>, <Sponsor: Bronze Sponsor>]
}
Run Code Online (Sandbox Code Playgroud)

我只在每个级别添加了一个赞助商,除了青铜器,只是为了展示它是如何工作的.我想做的就是将它"全部"转换为JSON,以便jQuery可以轻松地解释它.Django的其他序列化程序(如XML或YAML)可以实现这一目标吗?我可以"扩展"Django JSON Serializer来处理字典或"扩展"simplejson来处理Django QuerySet对象吗?

django serialization json django-queryset

33
推荐指数
3
解决办法
4万
查看次数

为Amazon CloudFront创建签名URL

简短版本:如何"按需"制作签名URL,以使用Python模拟Nginx的X-Accel-Redirect行为(即保护下载)与Amazon CloudFront/S3.

我有一个Django服务器,并运行Nginx前端.我一直受到了对它的请求的打击,最近不得不将其安装为Tornado WSGI应用程序,以防止它在FastCGI模式下崩溃.

现在我遇到了一个问题,我的服务器陷入困境(因为它的大部分带宽正在用完),因为有太多的媒体请求,我一直在寻找CDN,我相信Amazon CloudFront/S3对我来说是合适的解决方案.

我一直在使用Nginx的X-Accel-Redirect标头来保护文件免受未经授权的下载,但我没有使用CloudFront/S3的能力 - 但是它们确实提供了签名的URL.到目前为止,我不是Python专家,并且肯定不知道如何正确创建签名URL,所以我希望有人可以获得如何"按需"制作这些URL的链接,或者愿意解释如何在这里,我们将不胜感激.

而且,这是正确的解决方案吗?我不太熟悉CDN,是否有更适合这种情况的CDN?

python cdn amazon-cloudfront

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

Ubuntu上的Eclipse中的巨大选项卡

编辑:对于通过搜索来解决这个问题的任何人,您可以安装一个名为Clearlooks Compact的Gnome主题来缩短Eclipse中的标签.这将释放大量的屏幕空间.您还可以查看下面的答案,了解如何使标签更加水平紧凑.


简短版本:如何在Ubuntu中制作Eclipse的选项卡和工具栏的简短版本?

我一直在寻找谷歌的解决方案,但无济于事.对于任何GTK主题,我仍然有同样的问题,而且非常非常烦人 - 我已经停止使用Eclipse而支持gEdit.但是,从终端运行pylint之后也是如此.许多.倍.我已经决定使用Eclipse找到这个问题的解决方案,这样我就可以恢复PyDev了.这是标签的样子:

alt text http://c0496682.cdn.cloudfiles.rackspacecloud.com/big-tabs.png

正如您所看到的,不仅夸大了选项卡,而且工具栏也是如此:底部的工具栏也是如此; 底部窗格中的选项卡也是如此.总体而言,它占用了大量的屏幕空间,这是17英寸屏幕上的一个难题.任何建议/修复?

eclipse gtk ubuntu user-interface

23
推荐指数
4
解决办法
2万
查看次数

Eclipse(Aptana)打字滞后

我一直在使用Aptana已经有一段时间了,而且最近我一直在处理真正非常大的文件(500多行代码,这对我来说很重要,是一个新手开发人员).每当我处理较小的文件时,我都会感到奇怪的感觉,我在"打字的前面",但现在我很确定 - 当我输入内容和我看到的时间之间存在明显的延迟文字出现在屏幕上.我没有Dreamweaver CS3的这个问题,所以我知道我的计算机有能力编辑这些文件而不会发生这种情况,但Eclipse仍然落后.

如果我按住退格键,我也看不到什么东西被删除,我看到前几个字符被删除了,但随后一切都"挂起".一旦我释放退格键,将立即显示删除的字符立即消失.前向删除键也会发生同样的事情.

我开始认为这是Java的一个问题,因为我有同样的感觉,当我使用-any- Java应用程序时,一切都在我身后.

该计算机是Intel Pentium 4 3.2 GHz Prescott,配备2GB的DDR400内存和Radeon HD3650显卡.

如果有人知道如何解决这个滞后的问题,我都是耳朵(眼睛?); 如果有人可以推荐一个具有类似于Aptana的功能的不同IDE(我使用Python,HTML,CSS和JS;我使用Git for SCM),我很乐意尝试一下.谢谢!

aptana eclipse lag

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

推荐的Django部署

简短版本:如何部署Django服务器?什么应用服务器,前端(如果有的话,前端我的意思是反向代理)和操作系统你运行它?任何输入都会非常感激,对于Python来说我是一个新手,甚至更多的是作为服务器管理员.

长版本:我正在服务器主机之间进行迁移,对于周末这么多......但这并不是一件坏事.我有机会转向Django的另一个可能更好的"部署".

目前我正在使用Django通过Tornado的WSGI接口和Debian Lenny上的nginx前端.我正在寻求进入Rackspace Cloud,因此在操作系统方面我有很多选择:

  • Debian 5.0(Lenny)
  • FC 11或12
  • Ubuntu 9.10或8.04(LTS)
  • CentOS 5.4
  • Gentoo 10.1
  • Arch Linux 2009.02

我收集的是这个:

Linux发行版

Debian和CentOS发布软件的非bugfix更新非常缓慢,因为它们主要关注稳定性.这是好事还是坏事?我可以看到稳定性是一件好事,但事实上我无法获得Python 2.6而不必担心替换Python 2.4是一种关闭 - 如果我这样做,那么当它到来时我就会陷入困境希望使用apt/yum来安装Python库(它将尝试重新安装Python 2.4).

Ubuntu和Fedora看起来非常......准备好了.几乎已经准备好了,它就像它已经完成的一切.我喜欢修补东西,我更喜欢知道安装了什么以及它是如何配置的,而不是使用"千篇一律"设置来打击地面(没有违法行为,这只是描述我想说的内容的最佳方式) .我一直在玩Fedora,我很惊讶地发现已经安装了pycurl,simplejson和一堆其他库; 这提出了一个问题,不过,什么别的安装?我在一个非常小的VPS上运行紧凑的船,我更喜欢只运行我需要的东西.

然后是Gentoo ......我已经设法在我的桌面上安装Gentoo(差不多花了一周时间)并且在我想要做一些事情并且不得不花费45分钟重新编译新软件后花了45分钟将它扔掉了使用标志,以便我可以通过PIL解析PNG.我想知道,Gentoo是否适合像服务器一样的"静态"?我确切地知道我将在我的服务器上做什么,所以USE标志将永远改变.它优化了编译以满足您所告知的需求,仅此而已 - 我可以欣赏在最小的RAM和HDD空间上运行的东西.我听说,当你试图更新它上面的软件时,Gentoo有一种破坏的倾向......现在最重要的是让我远离它.

我不知道任何有关的Arch Linux.对此发行版的任何意见将不胜感激.

网络服务器

我一直在使用龙卷风,我可以肯定地说这是跑步最大的麻烦.我不得不编写自己的脚本来预备它,因为在我设置这个服务器的时候,我可能只有Tornado用户群的10%左右(不包括FriendFeed).然后我必须设置另一个"看门狗"程序,以确保那些叉子不会行为不端.但最重要的是,它使用大约40MB的RAM来运行我所有7个Django供电站点; 我很喜欢,我非常喜欢.

我一直在使用nginx作为Tornado的前端,我可以在Django FastCGI工作者面前运行nginx,但是当你提高并发级别时,那些没有Tornado的可靠性.这对我来说不是一个真正的选择,但我想我也可以列出它.

还有Apache,Django建议你通过mod_wsgi使用它.我个人不太喜欢Apache,我知道它非常,非常,非常成熟,什么不是,但与nginx和lighttpd相比,它看起来很......很胖.Apache/mod_python甚至不是一个选项,因为我的RAM非常有限.

瞄准Lighttpd!这里不多说,我从来没有用过它.我听说你可以在Apache/mod_wsgi面前运行它,也可以在Django FastCGI工作者面前运行它.我听说它有轻微的内存泄漏问题,但我确信可以通过cron工作解决.

我正在寻找的是您所看到的Django"最佳"部署,以满足您的需求.我对上述内容的任何意见或澄清都将非常受欢迎.

python linux deployment django webserver

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

将工作树更新为Git的HEAD

我想我说的都是正确的.

我有一个带有Git的登台服务器,我的伙伴和我从我们当地克隆的那个仓库推动对Git仓库的更改,当我们准备公开的时候,我们标记它就是这样,但是然后我必须做一个git reset --hard更新服务器上的实际文件到HEAD,这对我来说似乎有点奇怪.

我认为这个问题可能是对git如何运作的根本误解.通常我将我的代码分支到我的本地仓库,处理它,然后将它合并到主仓库,然后git push,这是正确的吗?

对不起,对于git来说,我是一个新手,任何使用远程git repos的资源都将不胜感激,谢谢!

git version-control

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

用于模型访问的Django DRY URL

Reader's Digest版本:如何通过获取模型名称的URL参数来获取模型中的数据(如果指定单行或完整表),而不对URLconf进行硬编码以匹配每个模型?有关详细信息,请继续阅读:

我正在创建一个有三个模型的应用程序,我想创建一个简单的视图,它取一个模型的名称,并吐出模型的默认管理器Model.manager.all(),,如果有一个slug,一个匹配该slug的对象.我不知道该怎么做,所以我遇到了必须单独为EACH模型制作views/URLconf的问题.

以下是URLconf的外观:

(r'^model1/$', 'model1_index_view', 'model1_index'),
(r'^model1/(?P<slug>[-\w]+)/$', 'model1_detail_view', 'model1_detail'),
(r'^model2/$', 'model2_index_view', 'model2_index'),
Run Code Online (Sandbox Code Playgroud)

它会持续一段时间,但我认为你得到的图片.我最终硬编码了相对大量的URLconf来做一些我认为我可以做的事情,也许是一个View,它将Model名称作为参数,并且可选择一个slug.我担心的是,如果有人指定一个模型名称说...用户?会发生什么?是否有一段代码可以从应用程序中获取模型列表,并确保它匹配其中一个而不是来自contrib.auth或其他应用程序的模型?

django dry django-urls

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

使用jQuery AJAX获取图像的最有效方法

Reader的摘要版本:从服务器请求图像并使用AJAX(或AJAI,或许?:)将其放入DOM的最有效方法是什么?这是长版本:

您好,我正在设置一个包含项目列表的简单页面,当您单击其中一个时,它会执行以下操作:

  1. 清除之前图像的页面(隐藏)上的模态对话框(如果有)
  2. 请求页面 /url/ajax/some-image/
  3. 用微调器显示打开模态对话框
  4. 一旦对服务器的请求完成:将该页面的HTML注入模式对话框

上面请求的页面搜索数据库以查找与给定URL匹配的条目,并返回显示的HTML页面<img src="path/to/image.jpg" alt="Whatever this would be." />.我不确定jQuery是否能为我带来一些魔力来提高效率,但在我看来,请求一个请求另一个图像的页面正在做更多的工作而不是需要完成的工作.我正在寻找的将是更像这样的东西:

  1. 清除之前图像的模态对话框
  2. 请求图像/url/ajax/some-image/(我可以将其设置为返回图像本身,而不是图像的<img/>标记)
  3. 用微调器显示打开模态对话框
  4. 一旦对服务器的请求完成:将图像直接注入模态对话框

我遇到的问题是......怎么样?我在看$.get,这似乎对我来说最有意义,而且我只是有点太过分了 - 我是JavaScript/jQuery的新手.

我已经将some-imageURL部分的rel值设置为<a>它对应的值(澄清:这是在服务器端完成的),因此我可以在click()事件的函数中很容易地构建到图像的URL.被解雇,模态对话框就是div#dialog.难道这与为改变简单的东西做src的<img/>?

ajax jquery image

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

jQuery $ .hover用于导致"弹跳"的子菜单

我在使用jQuery悬停方法时遇到了一些麻烦.

这是相关的JavaScript代码:

$("#navigation > li > ul").hide();
$("#navigation > li").hover(
    function() {
        $(this).children("ul").slideDown(125);
    },
    function() {
        $(this).children("ul").slideUp(125);
    }
);
Run Code Online (Sandbox Code Playgroud)

这是相应的HTML:

<ul id="navigation">
    <li><a href="#">Top Level Item #1</a></li>
    <li>
        <a href="#">Top Level Item #2</a>
        <ul>
            <li><a href="#">Sub-Menu Item #2-1</a></li>
            <li><a href="#">Sub-Menu Item #2-2</a></li>
            <li><a href="#">Sub-Menu Item #2-3</a></li>
        </ul>
    </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

每当您将鼠标悬停在顶级项目上时,其中的子菜单(如果有)将下拉,并具有漂亮,快速的幻灯片效果.问题是,当你快速将鼠标放置"到"菜单,让您的鼠标在菜单会是,但还没有达到:那么菜单将达到鼠标悬停动画的"结束",并反弹到隐藏状态,并重复,直到从下拉菜单中删除鼠标.

jquery hover drop-down-menu

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