小编ssc*_*ssc的帖子

如何在Fabric文件中设置目标主机

我想使用Fabric将我的Web应用程序代码部署到开发,登台和生产服务器.我的fabfile:

def deploy_2_dev():
  deploy('dev')

def deploy_2_staging():
  deploy('staging')

def deploy_2_prod():
  deploy('prod')

def deploy(server):
  print 'env.hosts:', env.hosts
  env.hosts = [server]
  print 'env.hosts:', env.hosts
Run Code Online (Sandbox Code Playgroud)

样本输出:

host:folder user$ fab deploy_2_dev
env.hosts: []
env.hosts: ['dev']
No hosts found. Please specify (single) host string for connection:
Run Code Online (Sandbox Code Playgroud)

当我创建Fabric文档中set_hosts()显示的任务时,env.hosts设置正确.但是,这不是一个可行的选择,也不是装饰者.在命令行上传递主机最终会导致调用fabfile的某种shell脚本,我宁愿让一个工具正常工作.

它在Fabric文档中说'env.hosts只是一个Python列表对象'.根据我的观察,这根本不是真的.

谁能解释一下这里发生了什么?如何设置要部署的主机?

python host fabric

107
推荐指数
8
解决办法
6万
查看次数

Django:用户登录时发出信号?

在我的Django应用程序中,我需要在用户登录时开始运行一些定期后台作业,并在用户注销时停止运行它们,所以我正在寻找一种优雅的方式

  1. 收到用户登录/注销的通知
  2. 查询用户登录状态

从我的角度来看,理想的解决方案是

  1. 由每个发送的信号django.contrib.auth.views.login... views.logout
  2. 一种方法django.contrib.auth.models.User.is_logged_in(),类似于... User.is_active()... User.is_authenticated()

Django 1.1.1没有那个,我不愿修改源代码并添加它(不知道如何做到这一点,无论如何).

作为临时解决方案,我is_logged_in在UserProfile模型中添加了一个布尔字段,该模型默认情况下已清除,在用户第一次访问登录页面(定义方式LOGIN_REDIRECT_URL = '/')时设置,并在后续请求中查询.我将它添加到UserProfile,因此我不必为此目的派生和定制内置用户模型.

我不喜欢这个解决方案.如果用户明确点击了注销按钮,我可以清除该标志,但大多数时候,用户只需离开页面或关闭浏览器; 在这些情况下清除旗帜对我来说似乎并不直接.此外(尽管数据模型的清晰度很明显),is_logged_in不属于UserProfile,而是属于User模型.

谁能想到替代方法?

python django signals login

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

检查Core Data中是否存在对象的最快方法?

我想知道对象是否在Core Data中持久存在.例如,我在Core Data中有Friends,我通过firstName识别它们.我可以查询核心数据以查看"George"是否已知.如果结果集数组包含多个零对象,我知道George就在那里.但是核心数据将整个内容加载到内存中,我实际上只是想知道乔治是否存储.

我怎样才能以最有效的方式做到这一点?

iphone core-data objective-c

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

如何禁用Django查询缓存?

在我的Django应用程序中,我在我的数据库上重复运行相同的查询(例如每10秒).然后,我在我收到的查询集上创建MD5总和,并将其与我在上一次运行中创建的MD5总和进行比较.如果两者相等,则数据未更改,并且网页不需要更新.

当我这样做时,数据库中的数据可能会改变.

但是,查询返回相同的查询集,显然是由于查询缓存.

如何禁用查询缓存并在DB上明确执行查询?

database django caching

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

python导入路径:不同文件夹中具有相同名称的包

我正在为几个客户同时开发几个Python项目.我的项目文件夹结构的简化版本如下所示:

/path/
  to/
    projects/
      cust1/
        proj1/
          pack1/
            __init__.py
            mod1.py
        proj2/
          pack2/
            __init__.py
            mod2.py
      cust2/
        proj3/
          pack3/
            __init__.py
            mod3.py
Run Code Online (Sandbox Code Playgroud)

当我例如希望从使用功能proj1,我延伸sys.path通过/path/to/projects/cust1/proj1(例如,通过设置PYTHONPATH或添加.pth文件到site_packages文件夹或甚至修改sys.path直接地),然后导入模块是这样的:

>>> from pack1.mod1 import something
Run Code Online (Sandbox Code Playgroud)

当我处理更多项目时,不同的项目具有相同的包名称:

/path/
  to/
    projects/
      cust3/
        proj4/
          pack1/    <-- same package name as in cust1/proj1 above
            __init__.py
            mod4.py
Run Code Online (Sandbox Code Playgroud)

如果我现在简单地扩展sys.path通过/path/to/projects/cust3/proj4,我仍然可以从进口proj1,而不是从proj4:

>>> from pack1.mod1 import something
>>> from pack1.mod4 import something_else
ImportError: No module named mod4
Run Code Online (Sandbox Code Playgroud)

我认为第二次导入失败的原因是Python只搜索 …

python path python-import

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

Twisted XmlStream:如何连接事件?

我想实现一个Twisted服务器,它需要XML请求并发送XML响应:

<request type='type 01'><content>some request content</content></request>
<response type='type 01'><content>some response content</content></response>
<request type='type 02'><content>other request content</content></request>
<response type='type 02'><content>other response content</content></response>
Run Code Online (Sandbox Code Playgroud)

我创建了一个扭曲的客户端和服务器之前该交换简单的字符串,并试图扩展到使用XML,但我似乎无法弄清楚如何正确设置了全面的总结.

client.py:

#!/usr/bin/env python
# encoding: utf-8

from twisted.internet             import reactor
from twisted.internet.endpoints   import TCP4ClientEndpoint, connectProtocol
from twisted.words.xish.domish    import Element, IElement
from twisted.words.xish.xmlstream import XmlStream

class XMLClient(XmlStream):

    def sendObject(self, obj):
        if IElement.providedBy(obj):
            print "[TX]: %s" % obj.toXml()
        else:
            print "[TX]: %s" % obj
        self.send(obj)

def gotProtocol(p):
    request = Element((None, 'request'))
    request['type'] = 'type 01'
    request.addElement('content').addContent('some request content') …
Run Code Online (Sandbox Code Playgroud)

python xml events network-programming twisted

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

NSFetchedResultsController与Mac OSX Cocoa等效

我正在将一些核心数据代码从iPhone移植到Mac OS X.

问题是Mac OS X上的核心数据框架NSFetchedResultsController.h没有NSFetchedResultsControllerDelegate声明协议; 至少我无法强制Cocoa应用程序看到这个类,即使我将Core Data Framework从iPhone项目拖到Mac应用程序链接.

有谁遇到过这个问题?

macos cocoa core-data

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

Perforce:从命令行"从工作区中删除"?

P4V Perforce的GUI客户端有一个菜单命令,从那些版本控制之下,进行编辑或删除没有打开工作空间中删除所有文件"操作>从工作区删除".

这个功能似乎只能从GUI客户端获得,我在显示的不断增长的列表中找不到任何相应的命令p4 help commands.

我想用的p4 where,p4 files有的名单过滤,但这似乎不是小事,所以我去创建一个脚本之前,没有任何人有一个更好的主意吗?

shell workspace perforce

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

PostgreSQL:如何构建和索引与时间相关的数据以获得最佳查询性能?

问题:

我在数据库中有与时间相关的数据,我正在努力以某种方式组织,构造和索引数据,以便用户可以有效地检索它; 即使简单的数据库查询也需要更长的时间

项目背景:

虽然这是一个纯数据库问题,但某些上下文可能有助于理解数据模型:

该项目围绕着对大型复杂机器进行研究.我对这台机器本身并不了解,但实验室里有传言说那里有一个磁通电容器 - 我想昨天,我发现薛定谔猫的尾巴悬在它旁边;-)

我们在机器运行时测量许多不同的参数,使用位于整个机器上的传感器,在一段时间内以一定的间隔在不同的测量点(所谓的).我们不仅使用一个设备来测量这些参数,而且测量它们的整个范围; 他们的测量数据质量不同(我认为这涉及采样率,传感器质量,价格和我不关心的许多其他方面); 该项目的一个目的实际上是建立这些设备之间的比较.您可以将这些测量设备可视化为一堆实验室手推车,每个手推车都有许多连接到机器的电缆,每个电缆都提供测量数据.

数据模型:

每个参数的每个点和每个设备都有测量数据,例如在6天的时间内每分钟一次.我的工作是将数据存储在数据库中,并提供对它的有效访问.

简而言之:

  • 设备具有唯一名称
  • 一个参数也有一个名字; 它们并不是唯一的,所以它也有一个ID
  • 一个地方有一个ID

项目数据库当然更复杂,但这些细节似乎与问题无关.

  • 测量数据索引具有ID,测量完成时的时间戳以及对设备的参考和进行测量的点
  • 测量数据具有参数和实际测量的参考

最初,我已将测量数据值建模为具有自己的ID作为主键; n:m测量数据索引和值之间的关系是一个单独的表,只存储了index:valueID对,但由于该表本身消耗了相当多的硬盘空间,我们将其消除并将值ID更改为存储ID的简单整数它属于的测量数据索引; 现在,测量数据值的主键由该ID和参数ID组成.

旁注:当我创建数据模型时,我仔细遵循常见的设计指南,如3NF和适当的表约束(如唯一键); 另一个经验法则是为每个外键创建一个索引.我怀疑测量数据索引/值表与'严格'3NF的偏差可能是我现在看到的性能问题的原因之一,但改变数据模型并没有解决问题.

DDL中的数据模型:

注意:此代码的更新在下面进一步说明.

下面的脚本创建了数据库和所有涉及的表.请注意,还没有明确的索引.在运行此操作之前,请确保您没有so_test使用任何有价值的数据调用数据库...

\c postgres
DROP DATABASE IF EXISTS so_test;
CREATE DATABASE so_test;
\c so_test

CREATE TABLE device
(
  name VARCHAR(16) NOT NULL,
  CONSTRAINT device_pk PRIMARY KEY (name)
);

CREATE …
Run Code Online (Sandbox Code Playgroud)

sql postgresql indexing performance database-design

15
推荐指数
2
解决办法
3459
查看次数

如何在没有页面重新加载的情况下更新Django页面?

我的Django应用程序显示数据库中的数据.该数据在没有用户干预的情况下改变,即在幕后.每当它发生变化时,我希望网页更新已更改的部分,而无需重新加载整页.

很明显,AJAX会浮现在脑海中.当最初加载页面(或手动,稍后完全重新加载)时,呈现的模板加载运行window.onload = update("all")的JavaScript,update(...)依次触发多个XMLHTTPRequests它再次返回转换为相应部分的HTML片段的数据.一切正常.在初始页面加载.

现在我发现自己处于一个Python函数中,它将一个新对象保存到数据库中.

如何告诉浏览器运行更新(...)?

我是否需要以某种方式手动向映射到视图的URL发出请求,而该视图又呈现包含JavaScript代码的模板以运行更新(...)??? 天啊!

我觉得我不遵循通常的做法.也许我只是站在问题面前关闭.

谁能帮我 ?

javascript python django ajax

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