小编sat*_*oru的帖子

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

IE中的"下载链接"失败

我试图实现一个"下载链接"并将其放在我的一个报表中,以便用户可以下载一个csv文件并使用Excel等应用程序打开它.

记录是根据用户的查询动态生成的.

所以在我的控制器的某个地方有类似的东西:

response.headers['Content-Type'] = 'text/csv'
response.headers['Content-Disposition'] = 'attachment; filename=xxx.csv'
return response.stream(dynamically_generated_csv, request=request)
Run Code Online (Sandbox Code Playgroud)

这适用于FireFox和Chrome,但在IE中失败.

当我打印出响应标题时,我发现web2py在我的响应中添加了几个标题:'Expires','Cache-Control'等...

当我通过执行以下操作删除"Cache-Control"标头时:

del response.headers['Cache-Control']
Run Code Online (Sandbox Code Playgroud)

它适用于IE.

因此,IE似乎无法处理可将"Cache-Control"设置为特定值的可下载文件.

现在,我的问题是:

  • 为什么web2py会隐式添加这些响应头?也许没有办法把它关掉?

  • 当我以这种方式删除'Cache-Control'标题时,有任何副作用吗?

提前致谢.

python internet-explorer web2py

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

我如何学习建立构建过程?

我在学校所教的是关于编程语言,软件设计,但几乎没有任何关于如何自动构建软件的东西,可能与集成的单元测试有关.

请告诉我如何开始学习为他的项目建立构建过程.

如果这太抽象而没有任何意义,我会补充说我使用Python并使用Django进行Web编程.

提前致谢.

python ci-server

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

与哈德森持续集成的工作流程是什么?

我今天被提到了哈德森.

我之前听说过持续集成,但我不知道ci-server到底是什么.

Hudson在Ubuntu中很容易安装,几分钟后我设法建立了它的实例.

但我不太了解ci-server的工作流程,或者我应该如何使用它?

如果您有ci的经验,请告诉我,提前谢谢.

编辑:

我目前正在使用Mercurial作为我的SCM,我想知道在Hudson中使用它的正确方法是什么.

我已经安装了水银插件哈德森,我创建一个本地存储库中的新工作.当我在存储库中提交时,Hudson使用最新版本的源代码构建作业.

如果我使用的是远程存储库,那么工作流程是什么样的?

它是否像以下那样?

  1. Hudson使用存储库设置作业
  2. Developer创建了存储库的本地克隆
  3. 开发人员提交和推送更改
  4. 远程存储库更新与传入的变更集
  5. 运行Hudson构建

可能会有一些我误解的东西,请帮我指出来.

continuous-integration hudson

6
推荐指数
2
解决办法
2036
查看次数

`datetime.strftime`和`datetime.strptime`以不同方式解释%Y

我使用如下所示的语句datetime从字符串创建一个对象:

t = datetime.strptime("0023-10-10", "%Y-%m-%d")

稍后,我的代码中的某个地方使用该t对象并strftime使用相同的格式字符串调用该方法:

t.strftime("%Y-%m-%d")

这导致了ValueError: year=23 is before 1900; the datetime strftime() methods require year >= 1900.

似乎%Y输入的验证在这两种类似的方法中是不同的.所以我必须做以下事情,以确保我不接受一些糟糕的岁月,如23:

try:
    format = "%Y-%m-%d"
    t = datetime.strptime("0023-10-10", format)
    t.strftime(format)
except ValueError:
    ...
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更好的方法来进行此验证.

python datetime datetime-format

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

我可以用什么库在Python中实现事件驱动编程?

也许像Django这样的信号不依赖于Django.

Django信号可用于在保存模型时清除缓存,我正在尝试做同样的事情.

python

6
推荐指数
2
解决办法
5219
查看次数

在 Chrome 内容脚本中使用模板的建议方法是什么?

我在 Chrome 内容脚本中使用了几个模板来elements添加到匹配的页面。

目前我将这些模板存储string在脚本中,但我想知道是否有更好的方法来做到这一点。

javascript google-chrome google-chrome-extension

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

如何获取服务器的IPMI地址?

我正在编写一个Python程序来收集有关它正在运行的主机的信息.

要收集的信息包括IPMI地址.

经过一些谷歌搜索,我发现了一个名为的命令行工具ipmitool,但我不知道如何让它输出IPMI地址.

python ipmitool

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

multiprocessing.cpu_count 返回错误的内核数

我尝试使用以下代码来确定笔记本电脑的核心数:

import multiprocessing
multiprocessing.cpu_count()
Run Code Online (Sandbox Code Playgroud)

结果是8,但是打开系统报告,可以看到我只有1个4核的CPU。

怎么了cpu_count()

python

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

如何按照Python类中声明的顺序获取属性?

PEP435中所述,enum可以通过以下方式定义:

class Color(Enum):
    red = 1
    green = 2
    blue = 3
Run Code Online (Sandbox Code Playgroud)

并将所得enum membersColor可实现高精细的顺序重复:Color.red, Color.green, Color.blue.

这让我想起了FormDjango中,哪些字段可他们在声明的顺序渲染Form子类.他们通过维护字段计数器来实现这一点,每次实例化新字段时计数器值都会增加.

但是在定义中Color,我们没有像a这样的东西,我们FormField怎么能实现呢?

python metaclass

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