小编jd.*_*jd.的帖子

在mod_wsgi下运行时激活Flask调试器

如何在mod_wsgi下运行时激活Flask调试器?

我将DEBUG,PROPAGATE_EXCEPTION和PRESERVE_CONTEXT_ON_EXCEPTION设置为True,但调试器仍未出现在异常上.

mod-wsgi flask

12
推荐指数
2
解决办法
9379
查看次数

Flask:'Response'对象不能与响应生成异常一起迭代

我似乎无法在Flask 0.10.1中产生异常响应(同样的情况发生在0.9).这段代码:

from flask import Flask, jsonify
from werkzeug.exceptions import HTTPException
import flask, werkzeug

print 'Flask version: %s' % flask.__version__
print 'Werkzeug version: %s' % werkzeug.__version__

app = Flask(__name__)
app.config['PROPAGATE_EXCEPTIONS'] = True

class JSONException(HTTPException):
    response = None

    def get_body(self, environ):
        return jsonify(a=1)

    def get_headers(self, environ):
        return [('Content-Type', 'application/json')]

@app.route('/x')
def x():
    return jsonify(a=1)

@app.route('/y')
def y():
    raise JSONException()

c = app.test_client()
r = c.get('x')
print r.data
r = c.get('y')
print r.data
Run Code Online (Sandbox Code Playgroud)

版画

Flask version: 0.10.1
Werkzeug version: 0.9.4
{
  "a": …
Run Code Online (Sandbox Code Playgroud)

python werkzeug flask

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

在contains_eager()中指定具有继承层次结构的实体的完整路径

我有一个查询

(session.query(Root).with_polymorphic('*')
    .outerjoin(Subclass.related1).options(contains_eager(Subclass.related1)))
Run Code Online (Sandbox Code Playgroud)

事情到目前为止工作.

我想要急切加载Related1.related2,我试过这个:

(session.query(Root).with_polymorphic('*')
    .outerjoin(Subclass.related1).options(contains_eager(Subclass.related1))
    .outerjoin(Related1.related2).options(contains_eager(Related1.related2)))
Run Code Online (Sandbox Code Playgroud)

但它不起作用:

sqlalchemy.exc.ArgumentError:在此Query中指定的任何实体上找不到属性"related2".请注意,必须指定从根(Mapper | Root | root)到目标实体的完整路径.

鉴于related1通过子类与根实体相关,我没有看到如何指定完整路径.

我也试过了

(session.query(Root).with_polymorphic('*')
    .outerjoin(Subclass.related1).options(contains_eager(Subclass.related1))
    .outerjoin(Related1.related2).options(contains_eager('related1.related2')))
Run Code Online (Sandbox Code Playgroud)

可以预见的是失败了

sqlalchemy.exc.ArgumentError:在此Query中的映射实体Mapper | Root | root上找不到名为'related1'的属性.

如何指定间接相关实体的完整路径contains_eager()

python sqlalchemy

7
推荐指数
1
解决办法
1220
查看次数

Jinja 2模板:我如何在if语句中检查布尔值是否为False或None

所以我想在jinja2模板中显示状态是True,False还是None.当然我使用布尔值,因为我有三个我需要的状态.

所以我尝试了以下代码来显示TrueFalse状态,并希望在它出现时不显示任何内容None.

            {% if valid %}
            VALID
            {% elif not valid %}
            NOT VALID
            {%endif %}
Run Code Online (Sandbox Code Playgroud)

但我的问题是现在,当validNone它显示'NOT VALID' 我怎样才能改变,要深藏不露来代替.

python jinja2

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

Flask 自动重新加载和长时间运行的线程

我正在 Flask 应用程序中实现一个长时间运行的线程。在调试模式下,在重新加载器激活的情况下,长时间运行的线程不会在重新加载时终止。

相反,因为创建和启动线程的代码是在重新加载后运行的,所以每个循环都会创建一个额外的线程。

除了禁用重新加载器之外,我如何防止这种情况发生?

在具有自动重新加载功能的 mod_wsgi 下运行时会发生同样的情况吗?

更新:长时间运行的线程实际上在重新加载时被 Werkzeug 杀死了。有一个额外的副本,这是由于 Werkzeug 的重新加载器占用了一个额外的线程来运行初始化代码。

python mod-wsgi wsgi werkzeug flask

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

在单个Firefox选项卡中禁用JavaScript

在使用Add-on SDK构建的Firefox附加组件中,如何为单个选项卡禁用和重新启用JavaScript?

firefox-addon firefox-addon-sdk

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

sqlalchemy在删除之前更新另一个模型

我在PostgreSQL中使用sqlalchemy。我是sqlalchemy的新手。

我为名为“ to_user_id”的模型“ User”创建了外部密钥,以对“ Invitation”进行建模,该密钥不可为空。

当我尝试使用删除模型“用户”的实例时

session.delete(user)
Run Code Online (Sandbox Code Playgroud)

sqlalchemy会在删除之前自动将邀请的to_user_id设置为NULL,而PostgreSQL则会引发以下错误。

IntegrityError: (IntegrityError) null value in column "to_user_id" violates not-null constraint
Run Code Online (Sandbox Code Playgroud)

如何禁用它?

这是我模型的定义

class User(Base):
    '''
    User model
    '''
    __tablename__='User'
    id = Column(Integer,primary_key=True)

class Invitation(Base):
    '''
    Invitation model
    '''
    __tablename__ = 'Invitation'
    __table_args__ = (UniqueConstraint('appointment_id', 'to_user_id'),)
    id = Column(Integer, primary_key=True)

    appointment_id = Column(Integer,ForeignKey('Appointment.id',
        ondelete='CASCADE'), nullable=False)
    appointment = relationship('Appointment', backref=backref('invitations'),
    )

    from_user_id = Column(Integer,ForeignKey('User.id',
        ondelete='SET NULL'), nullable=True)
    from_user = relationship('User', backref=backref('sent_invitations'),
        primaryjoin='Invitation.from_user_id==User.id')

    to_user_id = Column(Integer,ForeignKey('User.id',
        ondelete='CASCADE'), nullable=False)
    to_user = relationship('User',backref=backref('received_invitations'),
        primaryjoin='Invitation.to_user_id==User.id',
    )
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy

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

SQLAlchemy ORM从子查询中选择多个实体

我需要查询多个实体,例如session.query(Entity1, Entity2),只从子查询而不是直接从表中查询.文档有关于从子查询中选择一个实体的内容,但我无法在文档中或通过实验找到如何选择多个实体.

我的用例是我需要通过窗口函数过滤映射类底层的表,这在PostgreSQL中只能在子查询或CTE中完成.

编辑:子查询跨越两个表的JOIN,所以我不能这样做aliased(Entity1, subquery).

python sqlalchemy

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

Flask和其他Python frameowrk中的多个URL段

我正在Bottle和Flask中构建一个应用程序,看看我更舒服,因为Django太多'电池包含'.

我已经阅读了两者的路由文档,这是非常清楚和可理解的,但我正在努力寻找一种处理未知的,可能无限数量的URL段的方法.即:

http://www.example.com/seg1/seg2/seg3/seg4/seg5.....

我正在寻找使用类似的东西

@app.route(/< path:fullurl >)
Run Code Online (Sandbox Code Playgroud) 使用正则表达式删除不需要的字符并将fullurl字符串拆分成与段数相同的列表,但这看起来非常低效.

大多数PHP框架似乎都有一种构建段变量名称数组的方法,无论数量如何,但Flask,Bottle或Django似乎都没有类似的选项,我似乎需要指定一个确切数量的段来捕获变量.几个PHP cms似乎立即收集前9个段作为变量,任何更长的东西都作为完整路径传递,然后以我上面提到的方式分解.

我不理解URL路由中的工作方式吗?字符串拆分方法真的效率低下还是最好的方法呢?或者,有没有办法在Flask中直接收集未知数量的段?

我对Python框架很新,所以一个五岁的解释会有所帮助,

非常感谢.

python frameworks flask

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

计算多个分类器的分数

我正在尝试确定大型集合中的成对项目之间的相似性。这些项目有多个属性,我能够计算每个属性的离散相似度分数(介于 0 和 1 之间)。我根据属性使用各种分类器:TF-IDF 余弦相似度、朴素贝叶斯分类器等。

当我将所有这些信息编译成所有项目的最终相似度分数时,我陷入了困境。我不能只取未加权的平均值,因为 1)什么是高分取决于分类器,2)某些分类器比其他分类器更重要。另外,一些分类器应该只考虑它们的高分,即高分表示较高的相似度,但较低的分没有意义。

到目前为止,我已经通过猜测计算了最终分数,但分类器数量的增加使得这是一个非常糟糕的解决方案。有什么技术可以确定一个最佳公式,该公式将采用我的各种分数并仅返回一个分数?值得注意的是,系统确实会收到人类反馈,这就是一些分类器的工作原理。

最终我只对每个项目最相似的排名感兴趣。绝对分数本身是没有意义的,只有它们的顺序很重要。

classification machine-learning

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

将Flex AIR应用程序与Flash浏览器插件一起使用

我有一个Flex AIR应用程序.在编译过程中,会生成.swf文件.这个SWF是否可以与Flash浏览器插件一起使用?如果没有,如何将应用程序移植到浏览器?有没有需要注意的陷阱?

apache-flex air flash actionscript

0
推荐指数
1
解决办法
67
查看次数