小编rsb*_*rsb的帖子

Flask.url_for()错误:尝试生成没有推送应用程序上下文的URL

我有一个简单的应用程序,我试图重定向favicon每个:

http://flask.pocoo.org/docs/0.10/patterns/favicon/

app = flask.Flask(__name__)
app.add_url_rule('/favicon.ico', redirect_to=flask.url_for('static', filename='favicon.ico'))
Run Code Online (Sandbox Code Playgroud)

但这失败了:

RuntimeError: Attempted to generate a URL without the application context being pushed. This has to be executed when application context is available.
Run Code Online (Sandbox Code Playgroud)

所以,猜测,我试试这个:

app = flask.Flask(__name__)
with app.app_context():
    flask.current_app.add_url_rule('/favicon.ico', redirect_to=flask.url_for('static', filename='favicon.ico'))
Run Code Online (Sandbox Code Playgroud)

但得到一个不同的错误:

RuntimeError: Application was not able to create a URL adapter for request independent URL generation. You might be able to fix this by setting the SERVER_NAME config variable.
Run Code Online (Sandbox Code Playgroud)

到底是怎么回事?

flask

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

使用Flask和本机Python日志记录?

Flask日志记录(即app.logger.info(...)等)的问题在于子模块不使用它,所以在我看来,全局配置应用程序日志记录的唯一方法是通过底层python日志记录机制:例如,

logging.config.fileConfig('config/logging.conf')
Run Code Online (Sandbox Code Playgroud)

但是这不配置Flask的默认处理程序,因此例如,未配置HTTP日志记录.所以我得到混合日志:

2015-07-28 14:57:47,320 [main.py][INFO] Starting...           # Python log
[2015-07-28 14:58:49] "GET /demo HTTP/1.1" 200 956 0.318825   # Flask log
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议通过配置文件全局配置日志记录的标准做法(即,以便我可以轻松配置单个包).

此外,我似乎无法将HTTP日志记录(GET等)移除到stderr(我认为它来自werkzeug); 设置logging.getLogger('werkzeug').setLevel()仅影响与HTTP日志记录无关的werkzeug日志.

谢谢.

python werkzeug flask

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

App Engine,JDO和Maven.启动时出错

我正在尝试使用带有App Engine的JDO和Maven配置创建一个简单的测试.

我的编译和数据增强步骤成功.但是在运行时(mvn:test和appengine:devserver)我得到:

1) Error in custom provider, javax.jdo.JDOFatalInternalException: 
Class "com.google.appengine.datanucleus.DatastoreManager" was not found in the CLASSPATH.
Please check your specification and your CLASSPATH.
Run Code Online (Sandbox Code Playgroud)

但是,我的类路径(target/demo/WEB-INF/lib)确实包含:datanucleus-appengine-2.1.1.jar

我的依赖关系与Google datanucleus项目的POM中指定的依赖关系相同:

  <dependency>
    <groupId>javax.jdo</groupId>
    <artifactId>jdo-api</artifactId>
    <version>3.0.1</version>
  </dependency>
  <dependency>
    <groupId>org.datanucleus</groupId>
    <artifactId>datanucleus-core</artifactId>
    <version>[3.1.1, 3.2)</version>
    <scope>runtime</scope>
  </dependency>
  <dependency>
    <groupId>org.datanucleus</groupId>
    <artifactId>datanucleus-api-jdo</artifactId>
    <version>[3.1.1, 3.2)</version>
  </dependency>
  <dependency>
    <groupId>com.google.appengine.orm</groupId>
    <artifactId>datanucleus-appengine</artifactId>
    <version>2.1.1</version>
  </dependency>
Run Code Online (Sandbox Code Playgroud)

感谢任何建议.

RB

google-app-engine jdo datanucleus maven

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

调用 celery 任务需要所有 worker 依赖?

假设我有一个依赖于大模块 X 的 celery worker。

由于任务定义需要对工作应用定义的引用(例如,@app.task),这意味着我的“客户端”(调度任务的代码)也需要依赖于这个模块。

这对我来说没有意义——我弄错了吗?

一种)。我不希望我的任务调用者具有这些依赖项(例如,它们可能位于不同的 docker 容器中)。

B)。出于安全原因,我不希望我的任务调用者访问此代码。

有办法解决吗?

谢谢,

RB

celery

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

ES6模块:传递导出符号(即从导入的文件)

假设我正在创建一个包含多个文件的ES6库,但是有一个包含所有顶级定义的根文件.我怎么能实现这样的例子:

lib/foo/sub.js
export class Sub{}

lib/main.js
import { Sub } from './foo/sub'

client.js
# This doesn't work.
import { Sub } from 'lib/main'
Run Code Online (Sandbox Code Playgroud)

即,客户端仅从顶级文件导入(因为子级别是实现细节 - 稍后可能会封装到单个缩小文件中(但在开发时是在多个文件中).

import ecmascript-6

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

Python协议缓冲区字段选项

如何获得与协议缓冲区字段关联的选项?

例如,假设我有一个带有自定义选项的字段:

message Foo {
  optional string title = 1 [(indexed) = true];
}
Run Code Online (Sandbox Code Playgroud)

我可以获得字段列表:

for f in foo.ListFields():
  print f
Run Code Online (Sandbox Code Playgroud)

如何访问“已建立索引”状态?(我可以看到有一个f“ _options”列表,但看起来是“ internal”?是否有按名称访问选项扩展的正确方法)?

protocol-buffers

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