小编Apr*_*che的帖子

如何离开/退出/停用python virtualenv?

我正在使用virtualenv和virtualenvwrapper.我可以使用workon命令在virtualenv之间切换.

me@mymachine:~$ workon env1
(env1)me@mymachine:~$ workon env2
(env2)me@mymachine:~$ workon env1
(env1)me@mymachine:~$ 
Run Code Online (Sandbox Code Playgroud)

但是,如何退出所有虚拟机并再次使用我的真机?现在,我回到的唯一方法

me@mymachine:~$ 
Run Code Online (Sandbox Code Playgroud)

是退出shell并开始一个新的.那有点烦人.是否有一个"无所事事"的命令,如果有的话,它是什么?如果这样的命令不存在,我将如何创建它?

python virtualenv virtualenvwrapper

1461
推荐指数
12
解决办法
74万
查看次数

如何将模型从一个django应用程序迁移到一个新的应用程序?

我有一个django应用程序,里面有四个型号.我现在意识到其中一个模型应该在一个单独的应用程序中.我确实安装了南部进行迁移,但我不认为这是它可以自动处理的东西.如何将其中一个模型从旧应用程序迁移到新应用程序?

此外,请记住,我将需要这是一个可重复的过程,以便我可以迁移生产系统等.

migration django django-south

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

当我签出一个新的分支时,自动删除*.pyc文件和其他空目录

所以这是使用git和python的一个有趣的情况,我相信它也适用于其他情况.

假设我用文件夹/ foo /制作一个git repo.在那个文件夹中我放了/foo/program.py.我运行program.py并创建program.pyc.我在.gitignore文件中有*.pyc,所以git不会跟踪它.

现在让我们说我做另一个分支,开发.在这个dev分支中,我完全删除/ foo /文件夹.

现在我切换回主分支,并且/ foo /重新出现.我运行program.py并重新出现program.pyc文件.一切都很好.

我切换回我的开发分支./ foo /目录应该消失.它只存在于master分支中,而不是dev分支中.但是,它仍然存在.为什么?因为忽略的program.pyc文件阻止在切换分支时删除该文件夹.

解决此问题的方法是在切换分支之前以递归方式删除所有*.pyc文件.我可以使用此命令轻松完成此操作.

find . -name "*.pyc" -exec rm '{}' ';'
Run Code Online (Sandbox Code Playgroud)

问题是,每次更换分支时都必须记住这样做很烦人.我可以为这个命令创建一个别名,但是每次我改变分支时我仍然要记得输入它.我也可以为git-branch制作一个别名,但这也不好.除了更改分支之外,git branch命令还可以执行其他操作,并且我不希望每次使用它时都删除所有pyc文件.哎呀,我甚至可以在非python回购中使用它,那么呢?

有没有办法设置一个只在我更改分支时才执行的git钩子?或者是否有其他方法可以设置所有*.pyc文件,以便在切换分支时删除?

python git bash

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

CouchDB在同一视图中进行排序和过滤

我正在尝试将CouchDB用于新的应用程序,我需要创建一个按多个字段排序并按多个字段过滤的视图.这是一个示例文档,我省略了_id和_rev以节省一些打字.

{
    "title": "My Document",
    "date": 1279816057,
    "ranking": 5,
    "category": "fun",
    "tags": [
        "couchdb",
        "technology"
    ],
}
Run Code Online (Sandbox Code Playgroud)

从文档中,我了解到我可以轻松地创建一个按排名等字段排序的视图.

function(doc) {
    emit(doc.ranking, doc);
}
Run Code Online (Sandbox Code Playgroud)

我还了解到,我可以轻松地按类别等字段进行过滤

function(doc) {
    emit(doc.category, doc);
}

http://127.0.0.1:5984/database/_design/filter/_view/filter?key=%22fun%22
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要同时做一堆这些事情.我想根据类别和标签进行过滤.我应该能够过滤到只有"fun"类别和"couchdb"标签的文档.我想通过按降序排序,然后按日期按升序排序,然后按字母顺序按标题排序过滤结果.

如何创建一个可以完成所有排序和过滤的视图?

sorting couchdb filter nosql

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

在django admin中验证图像大小

我看到很多有Django应用程序的图片上传人员在上传后会自动调整图片大小.对某些情况来说这很好,但我不想这样做.相反,我只是想强制用户上传已经适当大小的文件.

我想要一个ImageField,我强制用户上传100x200的图像.如果他们上传的图片不是那么大,我希望管理表单返回无效.我也希望能够为宽高比做同样的事情.我想强制用户上传16:9的图像并拒绝任何不符合的上传.

我已经知道如何获取图像的宽度和高度,但是在图像上传之后我才能做到服务器端,并且表单已成功提交.如果可能,我如何提前检查?

python django image django-forms python-imaging-library

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

django如何处理多个memcached服务器?

在django文档中它说:

...

Memcached的一个出色功能是它能够在多个服务器上共享缓存.这意味着您可以在多台计算机上运行Memcached守护程序,程序会将该组计算机视为单个缓存,而无需在每台计算机上复制缓存值.要利用此功能,请在LOCATION中包含所有服务器地址,以分号或列表分隔.

...

Django的缓存框架 - Memcached

这究竟是如何工作的?我在这个网站上读到了一些答案,建议通过基于密钥的哈希来跨服务器进行分片来实现.

多个memcached服务器提问

MemCacheStore如何真正与多个服务器配合使用?

这很好,但我需要一个更具体和详细的​​答案.使用django和pylibmc或python-memcached这个分片是如何实际执行的?配置设置中的IP地址顺序是否重要?如果运行相同django应用程序的两个不同Web服务器具有两个不同的设置文件,其中memcached服务器的IP地址的顺序不同,该怎么办?这会导致每台机器使用不同的分片策略导致重复密钥和其他低效率吗?

如果特定机器在列表中出现两次怎么办?例如,如果我要做这样的事情,127.0.0.1实际上是与172.19.26.240相同的机器怎么办?

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': [
            '127.0.0.1:11211',
            '172.19.26.240:11211',
            '172.19.26.242:11211',
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

如果其中一个memcached服务器的容量大于其他服务器,该怎么办?如果机器1具有64MB memcached而机器2具有128MB,那么分片算法是否会考虑到这一点并为机器2提供更大比例的密钥?

我还读过,如果memcached服务器丢失,那么这些密钥就会丢失.当涉及分片时,这是显而易见的.更重要的是,如果memcached服务器出现故障并将其IP地址留在设置文件中会发生什么?django/memcached是否会无法获得任何已经分类到该故障服务器的密钥,或者它是否会意识到服务器已经失败并提出了新的分片策略?如果有一个新的分片策略,它是否会智能地获取最初用于故障服务器的密钥并将它们分配给其余服务器,或者它是否提出了一个全新的策略,就像第一个服务器不存在一样导致密钥重复?

我试着阅读python-memcached的源代码,但根本无法解决这个问题.我打算尝试阅读libmemcached和pylibmc的代码,但我想如果有人已经知道,这里要求会更容易.

python django memcached sharding

20
推荐指数
2
解决办法
6358
查看次数

如何在可重用的Django应用程序中建模外键?

在我的django网站中,我有两个应用程序,博客和链接.博客有博客模型,链接有模型链接.这两件事之间应该有一对多的关系.每个博客帖子有很多链接,但每个链接只有一篇博文.简单的答案是在链接模型中将ForeignKey放到blogpost中.

这一切都很好,但有一个问题.我想让链接应用程序可重用.我不希望它依赖于博客应用程序.我希望能够在其他网站中再次使用它,并可能将链接与其他非博客应用和模型相关联.

一般的外键似乎可能是答案,但不是真的.我不希望链接能够与我的网站中的任何模型相关联.只是我明确指定的那个.我从之前的经验中知道,在数据库使用方面可能存在使用通用外键的问题,因为您无法像使用常规外键那样对通用外键执行select_related.

建立这种关系的"正确"方法是什么?

python django django-models

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

为Django Archive页面选择不同的年份和月份

我想为我的django网站制作archive_index页面.但是,基于日期的通用视图确实没有任何帮助.我希望视图返回的字典具有至少存在一个对象类型实例的所有年份和月份.因此,如果我的博客在2007年9月开始,但在2008年4月没有帖子,我可以得到类似的东西

2009 - Jan, Feb, Mar
2008 - Jan, Feb, Mar, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
2007 - Sep, Oct, Nov, Dec

python django datetime django-queryset django-views

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

Django管理员中的WMD?

我知道如何使用widget =在常规django表单中使用WMD和其他此类javascript编辑器.但是,如何在Django管理员的文本字段中使用WMD?最重要的是,如何将它用于admin中contrib.flatpages的内容字段?

另外,我想我可能想使用WMD的StackOverflow分支,所以如果需要的话,我想要任何特殊说明.

我知道如何在模板中使用降价滤镜,因此该部分是可以的.我只需要让编辑器显示并在管理界面中工作.

django admin wmd

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

如何让工作人员访问一些Django设置?

在Django中,设置存储在settings.py文件中.该文件是代码的一部分,并进入存储库.只有开发人员处理此文件.管理员处理模型,数据库中的数据.这是非开发人员编辑的数据,以及网站访问者在模板中看到的数据.

问题是,我们的网站和许多其他网站都有许多设置选项,应该由非开发人员编辑.我们讨论的是独立的站点范围常量,它们在数据库中确实没有位置.将它们放入数据库将导致许多无意义的查询.缓存可以缓解这种情况,但是在设置settings.py文件中的单行处理时,这似乎不必要地复杂.

我确实注意到了这个dbsettings应用程序,但它已经过时且没有维护.我还注意到django电子商务应用程序Satchmo包含了这个dbsettings应用程序的用例特定分支.我们可以在我们的站点中构建类似的东西,一个将一些设置作为键/值对存储在一个数据库表中的应用程序,但它看起来真的是错误的方法.为什么在不属于那里的数据库中添加一些内容只是为了让非开发人员更容易编辑?

我们在Django网站上有一个站点范围的设置列表,我们希望非开发人员管理员可以编辑这些设置.解决这个问题的最佳方式是什么?

python django settings

9
推荐指数
2
解决办法
2178
查看次数