小编And*_*rea的帖子

什么时候在CakePHP中进行消毒

我从食谱中读到(第4.2节)

如果您使用CakePHP的ORM方法(例如find()和save())和正确的数组表示法(即数组('field'=> $ value))而不是原始SQL,CakePHP已经保护您免受SQL注入.对于针对XSS的清理,通常更好的是将原始HTML保存在数据库中而不进行修改并在输出/显示时进行清理.

因此,我们确定我们不需要针对SQL手动清理用户数据,前提是我们限制使用find()和save()等方法吗?特别是,如果我直接从$ _POST获取数据而不是从$ this-> data获取数据,这是真的吗?换句话说,假设我使用$ this-> data进行find()查询.然后CakePHP在编写数组$ this-> data或编写find()查询时对SQL进行清理?

我的第二个问题是清理要显示的数据.是Sanitize :: html幂等吗?那么,我可以在我的beforeSave()方法中使用它,还是会在第二次保存时中断,因为它再次应用并提供新的结果?

sanitization cakephp

8
推荐指数
1
解决办法
6004
查看次数

我应该学习XUL吗?

我熟悉Web编程,包括客户端和服务器端,我想扩展一点我的知识,以便能够编写一些桌面程序.

我的问题是我并不熟悉管理小部件的桌面方式.据我所知,在一个典型的桌面程序中,小部件有自己的生命,相互发送信号并通过回调对信号做出反应.所以每个小部件都是一个有很多方法的对象.这增加了我现在所知道的复杂性,我不确定我现在想要了解这一点.

在网络上,您可以使用标记语言(通常是某些版本的HTML)在页面上简明地描述元素,并且在触发事件时,您可以使用Javascript修改元素.我试图了解是否有办法在桌面程序中使用Web范例.我希望能够通过标记语言描述小部件(这些将是静态的)并根据事件改变它们.如果我理解正确,基于XUL的应用程序就是这样工作的.

问题是我能找到的关于XUL的文档似乎有点过时了.学习XUL是个好主意吗?我可以期待几年后仍在使用它吗?或者它已成为一项旧技术?

如果XUL不是一个好主意,有哪些替代方案?对于最简单的应用程序,小部件是静态的,或者只是稍作修改,有一些简单的 工具,但是更复杂的程序呢?

编辑:我应该提到我主要使用Ubuntu,所以我需要一个Linux或独立于操作系统的工具.

xul

8
推荐指数
2
解决办法
1096
查看次数

测试和python包结构

我在构建我的python项目时遇到了一些问题.目前它是同一文件夹中的一堆文件.我试着像它一样构造它

proj/
  __init__.py
  foo.py
  ...
  bar/
    __init__.py
    foobar.py
    ...
  tests/
    foo_test.py
    foobar_test.py
    ...
Run Code Online (Sandbox Code Playgroud)

问题是我无法从内部目录导入外部目录中的模块.这对测试尤其烦人.

我已经阅读了关于相关进口的PEP 328和关于主要模块的相对进口的PEP 366.但是这两种方法都要求基础包在我的PYTHONPATH中.确实,我得到以下错误

ValueError:在非包中尝试相对导入.

所以我在测试文件的顶部添加了以下样板代码

import os, sys
sys.path.append(os.path.join(os.getcwd(), os.path.pardir))
Run Code Online (Sandbox Code Playgroud)

我仍然得到同样的错误.什么是正确的方法

  • 构建一个包,完成测试,和
  • 将基目录添加到路径以允许导入?

编辑根据评论中的要求,我添加了一个失败的示例导入(在文件中foo_test.py)

import os, sys
sys.path.append(os.path.join(os.getcwd(), os.path.pardir))
from ..foo import Foo
Run Code Online (Sandbox Code Playgroud)

python package

8
推荐指数
2
解决办法
3529
查看次数

Django - 限制选择依赖于实例的东西

我有一些组织成类别的foos.对于每个类别,我希望能够选择一个胜利者foo.

因此我的模型看起来像这样:

class Category(models.Model):
    name = models.CharField(max_length=30)
    # More fields...
    winner = models.ManyToManyField(
        'Foo',
        related_name='winner'
    )

class Foo(models.Model):
    name = models.CharField(max_length=30)
    # More fields...
    category = models.ForeignKey(
        Category,
        related_name='category'
    )
Run Code Online (Sandbox Code Playgroud)

(原因winner是a ManyToManyFieldfoo可能属于多个类别,而在单个类别中,由于ex-aequo,可能会有多个获胜者.)

我想强加一个foo可以在类别中获胜的自然约束,只要它属于该类别.最合理的方法似乎是使用limit_choices_to参数,但在我看来,不可能根据模型的当前实例限制选择.

我可能能够以给定的形式强加这种约束,但我想避免这种情况有两个原因:

  • 约束自然生活在模型层面.它应该始终存在于两个相关模型之间
  • 获胜者的选择将在管理员中进行,我希望避免必须自定义管理员表单

有没有办法在Django中强加这个约束?

python django django-models django-admin

8
推荐指数
1
解决办法
2302
查看次数

控制iPhone/iPad上的视频叠加

我正在编写一个webapp,我需要显示一个视频和一些(非标准)控件,它应该出现在叠加层中.因此,创建一些div并将它们放在视频上,具有更高的z-index.

不过,在iPhone和iPad上,似乎这些控件无法点击.我为点击事件注册了操作,但是当我点击控件时,根本没有触发.我知道在视频实际播放时我无法控制(甚至全屏播放),但问题是即使视频停止,控件也无法使用.

我也尝试controls从视频中删除该属性,但没有效果.

有没有办法为位于iPhone/iPad上的视频上的元素注册点击事件?

javascript iphone video ipad html5-video

8
推荐指数
1
解决办法
3357
查看次数

玩迁移替代品

我即将开始一个将使用Play的新项目!2 Scala的框架,可能使用Squeryl作为ORM(但也许Slick也会没问题,如果及时准备的话).

现在,玩!具有使用迁移升级数据库的功能.不幸的是,这些迁移是用SQL编写的.这不仅带来不便(我希望能够在Scala中编写迁移),但有两个问题

  • 首先,我需要自己编写迁移.我已经习惯了South,它能够通过查看模型的当前和以前的定义来推断模式迁移;
  • 第二,处理数据迁移将非常麻烦.可能需要以编程方式更改数据,这在普通SQL中甚至可能无法实现.

所以,我正在寻找替代方案.我无法为任何会自动生成模式迁移的Scala ORM找到任何迁移工具,有没有?

我能找到的最好的工具是Scala迁移.有没有办法让玩!自动使用它代替自己的迁移工具?

migration scala playframework squeryl

8
推荐指数
3
解决办法
3316
查看次数

使用Python中的AVRO,仅用于序列化

我想使用Avro标准化二进制格式,以便跨不同应用程序进行对象序列化.应用程序本身不会使用Avro RPC进行通信.可能会使用像ZeroMQ这样的东西.

我正在尝试编写一个简单的原型,其中Python客户端与Scala服务器进行通信.我对Scala方面没有任何问题,但我不太清楚在Python方面该怎么做.我试图遵循官方指南,以及许多博客文章.

在我发现的指南和帖子中,示例仅显示如何从文件写入/读取,或如何通过Avro进行RPC.我希望能够编写一些对象的Avro字节表示

  • 在记忆中,和
  • 不包括架构

我可以在发送端和接收端部署模式的副本,但模式本身不应该传播,因为消息将是原子的,我不希望在每个请求上发送模式的开销.

以上是否可以使用python avro库?

python avro

8
推荐指数
0
解决办法
1356
查看次数

关于Git的Pharo项目

我是Pharo的先驱,我了解了蒙蒂塞洛和梅塔塞洛.

据我所知,Pharo不是基于文件的意味着不能直接使用Git等常用的源代码控制工具.然而,我在Github上看到了一些Pharo存储库,比如这个.

是否有可能在Git上备份大提琴版本?这样的工作流程会是什么样子的?

git version-control smalltalk pharo

8
推荐指数
1
解决办法
710
查看次数

多方法的一般语法

如果这个问题很简单,我会道歉,但一些谷歌搜索并没有把我带到任何地方.defmulti和的一般语法是defmethod什么?我可以编写简单的多方法,但我不知道在哪里可以放置文档字符串,前置和后置条件,元数据等.

我实际上对ClojureScript比对Clojure更感兴趣,所以如果两者之间存在差异,请告诉我.

clojure multimethod clojurescript

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

在Scala中键入伴随对象

我有一个类及其伴随对象,它们共同具有一些可重用的功能.我已将伴随对象的功能封装成特征,所以现在的情况就像

class Foo {
  import Foo._

  def foo: Quux = bar(this)
}

trait Bar {
  def bar(f: Foo): Quux = frobnicate(f)
}

object Foo extends Bar
Run Code Online (Sandbox Code Playgroud)

既然Foo.foo是一种可重用的方法,我想把它放到它的特性中.

但我必须找到一种方法来告诉类型检查器,虽然bar不是类的方法Foo,但它将在范围内,因为从伴随对象导入.我想我需要能够键入类的伴随对象.

有类似的东西吗?

types scala companion-object

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