小编Yan*_*nin的帖子

什么时候应该使用Flask.g?

看到的是g将从请求上下文移动到瓶0.10的应用程序上下文,这让我困惑的用途的g.

我的理解(对于Flask 0.9)是:

  • g 生活在请求上下文中,即在请求开始时重新创建,并且可用直到它结束
  • g用作"请求黑板",我可以在请求的持续时间内放置相关的东西(即,在请求开始时设置一个标志并在最后处理它,可能来自before_request/ after_requestpair)
  • 除了保持请求级别状态之外,g可以并且应该用于资源管理,即保存数据库连接等.

Flask 0.10中哪些句子不再适用?有人能指点我讨论改变原因的资源吗?我应该在Flask 0.10中使用什么作为"请求黑板" - 我应该创建自己的应用程序/扩展特定的线程本地代理并将其推送到上下文堆栈before_request吗?如果我的应用程序存在很长时间(不像请求),那么资源管理在应用程序上下文中的重点是什么?因此资源永远不会被释放?

python flask

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

在Postgres/SQLAlchemy上设置application_name

看一下输出select * from pg_stat_activity;,我看到一个名为的列application_name,在这里描述.

我看到psql正确设置了这个值(到psql...),但我的应用程序代码(psycopg2/SQLAlchemy)将它留空.

我想将它设置为有用的东西,比如web.1,web.2等等,所以我可以稍后关联什么,我看到pg_stat_activity与我在我的应用程序日志中看到.

我找不到如何使用SQLAlchemy设置这个字段(如果push推进 - 即使使用原始sql;我在Heroku上使用PostgresSQL 9.1.7,如果这很重要).

我错过了一些明显的东西吗

postgresql sqlalchemy psycopg2

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

多个部署环境(生产/登台/等)和Facebook应用程序

我正在寻找关于Facebook应用程序和登台/制作环境的"最佳实践"答案.本能地,我为每个环境提供了自己的Facebook应用程序,并拥有自己的ID和秘密.这似乎(在这里,在这里,通过谷歌搜索的广泛),它是根本不可能跨越应用共享OG的配置,所以我一直在复制整个环境中的应用程序设置(图标,请求的权限和文本等).这是一个痛苦和丑陋,但我已经与它生活在一起.

唉,随着opengraph行动的引入,这已经不再有趣 - 复制更多,所有事情都必须通过审批流程.有没有更好的方法来做到这一点?一位同事建议我们只是在所有环境中共享相同的应用程序,但我对此感到担心 - 这意味着我们必须与暂存环境共享生产秘密(我甚至不谈论localhost开发环境),我们需要以某种方式将Facebook流量路由到正确的环境(因为一个Facebook应用程序意味着一个页面选项卡URL).

必须有更好的方法......不是吗?

deployment facebook-graph-api

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

zsh read -q 在 OSX 上坏了?

我正在运行% read -q,然后输入一个不是y,Y或的单个字符n。但是,设置的值$REPLY不是n,而是我输入的字符。

文档read -q明确地说:

从终端只读取一个字符,如果这个字符是 'y' 或 'Y',则将 name 设置为 'y',否则设置为 'n'。

此行为在使用 zsh 4.3.11(默认)和 5.0.0(自制软件)的 OSX 10.7 上重现,但在 Linux(Ubuntu 12.04、zsh 4.3.10)上不会重现 - 在 Linux 上,值$READn,正如预期的那样。

另外,我试过在 下运行zsh -f,结果相同(即,我认为它不在我的 init 脚本中)。

我错过了什么吗?

macos zsh

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

使用命令行工具确定阻止OSX进程的内容?

标题说得最多,真的.在Linux上这将是很容易strace和可能的lsof/proc,并用它很容易在OSX,直到truss从OSX Leopard的去除,与潜在的系统调用(据我所知)一起.

显而易见的方法是用这个问题来解决这个问题dtrace,但据我所知,dtrace这不会做,因为它会在事件发生时捕获事件 - 在我的情况下,阻塞系统调用已经开始了.dtrace顺便说一下,如果可以解决这个问题,我很乐意做出纠正.

我看到Xcode的仪器有一个监视器,通过定期处理进程堆栈的样本来实现类似的东西(不确定系统调用依赖于它做什么!),也许在命令行上类似的东西就足够了(因为它会显示堆栈一直到包含系统调用的库调用).为了对我的用例有用,这个"采样命令行工具"必须找到并解析它在堆栈上找到的参数,以便确定我们阻止了哪些文件/文件描述符.

最后一件事 - 在Linux上,你通常可以做普通用户(假设没有ptrace_scope技巧).如果OSX解决方案也不需要root,那将是很好的.

macos dtrace blocking instruments strace

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

S3线轴桶/匿名PUT

我想使用S3 CORS和密钥过期来创建"假脱机桶".此假脱机桶应支持以下内容:

  • 前端代码(比方说,jQuery)应该能够HTTP PUT任意命名桶的密钥
  • 在给定密钥名称的情况下,后端代码(例如,Python/boto)应该能够读取和删除这些密钥
  • 密钥应在X天后自行过期

究竟应该如何实现?

file-upload spool amazon-s3 cors

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

来自 Python 生成器的 Google Cloud Storage 流式上传

我有一个 Python 生成器,可以生成yield大量未知的字节数据。我想将输出流式传输到 GCS,而不先缓冲到磁盘上的文件。

虽然我确信这是可能的(例如,我可以创建一个子进程gsutil cp - <...>并将字节写入其标准输入),但我不确定推荐/支持的方式是什么,并且文档给出了上传本地文件的示例。

我应该如何正确地做到这一点?

python google-cloud-storage google-cloud-sdk google-cloud-python

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