我最近一直在与Pylons做一些工作,非常像SQLAlchemy数据库交互模型.我的网站有一部分,我认为可以从EAV架构中受益.
使用它作为我的表示例:
id | userid | type | value
---+--------+--------|------------
1 | 1 | phone | 111 111 111
---+--------+--------|------------
2 | 1 | age | 40
Run Code Online (Sandbox Code Playgroud)
我可以手动运行以下查询来提取和更新数据:
SELECT value FROM table WHERE userid=1 AND type='phone'
UPDATE table SET value=41 WHERE userid=1 AND type='age'
Run Code Online (Sandbox Code Playgroud)
这很容易并且有效...但是手动构建查询不是我的首选方法.我想使用SQLAlchemy来创建我的表模型并让它完成所有的工作.
如果我使用标准架构,每个架构都有type自己的列,我可以执行以下操作:
class People(Base):
__tablename__ = 'people'
id = Column(Integer, primary_key=True)
userid = Column(Integer, ForeignKey('users.id'))
phone = Column(Unicode(40))
age = Column(Integer)
Run Code Online (Sandbox Code Playgroud)
然后我可以使用以下方法提取数据:
data = Session.query(People).filter_by(id=1).first()
print data.age
Run Code Online (Sandbox Code Playgroud)
我希望能够为我的EAV架构做同样的事情.所以基本上,我需要一种方法来扩展SQLAlchemy并告诉它,当我调用data.age它实际上意味着,我想要SELECT value FROM table …
将SRC和HREF属性用于包括一些外部实体,如图像,CSS文件,HTML文件,其他任何网页或JavaScript文件.
有没有明确区分SRC和HREF?何时何地使用SRC或HREF?我认为它们不能互换使用.
我将在下面给出几个使用这些属性的示例:
href="cssfile.css"在链接标记内.src="myscript.js"在脚本标记内.src="mypic.jpg"在图像标记内.href="http://www.webpage.com"在锚标记内.我有一个sh/bash脚本需要调用带参数的批处理文件(参数是文件名,并以DOS/Windows格式给出).
基本上我有: script.sh
#!/bin/sh
declare var1=$1
declare var2=$2
dosomething var1 var2
...
<invoke batch script> var1 var2
...
dosomethingelse
Run Code Online (Sandbox Code Playgroud)
我正在使用GNU bash, version 3.1.0(3)-release (i686-pc-msys)shell作为shellmsysgit
问题是,当我从脚本运行时:
$COMSPEC /c batchfile param1 param2
要么我得到一个看似bash的"空提示",但是控制台上没有显示命令结果,要么cmd.exe启动,要么不执行脚本.
我试过引用这些参数来像这样猛击:
$COMSPEC /c \"batchfile param1 param2\"
$COMSPEC /c \"\"batchfile param1 param2\"\"
$COMSPEC /c \"\"batchfile \"param1\" \"param2\"\"\"
Run Code Online (Sandbox Code Playgroud)
但我没有得到任何结果.
我正在开发一个向客户端公开Web服务的简单服务器.某些请求可能需要很长时间才能完成,并且在逻辑上分为多个步骤.对于此类请求,需要在执行期间报告进度.此外,可以在前一个请求完成之前启动新请求,并且要求两个请求同时执行(除非某些特定于系统的限制).
我想让服务器将TaskId返回给它的客户端,并让客户端使用TaskId跟踪请求的进度.我认为这是一个很好的方法,我留下了如何管理任务的问题.
从来没有使用过TPL,我认为这是解决这个问题的好方法.实际上,它允许我同时运行多个任务而无需手动管理线程.我甚至可以使用ContinueWith相对容易地创建多步骤任务.
但是,我无法想出一个跟踪任务进度的好方法.我意识到,当我的请求包含一个"步骤"时,该步骤必须合作报告其状态.这是我现在宁愿避免的.但是,当请求包含多个步骤时,我想知道当前正在执行哪个步骤并相应地报告进度.我能想到的唯一方法是非常无聊:
Task<int> firstTask = new Task( () => { DoFirstStep(); return 3.14; } );
firstTask.
ContinueWith<int>( task => { UpdateProgress("50%"); return task.Result; } ).
ContinueWith<string>( task => { DoSecondStep(task.Result); return "blah"; }.
ContinueWith<string>( task => { UpdateProgress("100%"); return task.Result; } ).
Run Code Online (Sandbox Code Playgroud)
即使这不完美,因为我希望Task存储自己的进度,而不是让UpdateProgress更新一些已知的位置.此外,在添加新步骤时必须更改大量位置的明显缺点(因为现在进度为33%,66%,100%而不是50%,100%).
有没有人有一个好的解决方案?
谢谢!
获取可以为空或包含"1.2"的字符串的最佳方法是什么,并将其转换为整数?int.TryParse当然,失败了,我不想使用float.TryParse然后转换为int.
我的问题很简单:我想知道'p'标记内有多少个字符,如果数量超过100,则会在悬停时触发一个事件。我试图像这样检索字符数:
var charLength = $('.myPar').val().length;
<p class="myPar">this is the content of the paragraph</p>
Run Code Online (Sandbox Code Playgroud)
它始终返回零作为值,并且似乎仅适用于文本区域或输入标签。任何的想法?
提前致谢!
毛罗
我正在使用ReSharper开发一个项目.有时它会提示我可以只读取一个字段.这有什么表现或其他好处吗?我认为它的好处是相当低级的,或者任何好处都是纯粹的语义?
谢谢
在下面的示例中,该字段最初只是私有,但resharper提示将其设置为只读.我理解为什么它可以设置为只读,即.它是在构造函数中设置而不是再次更改,但只是想知道这是否有任何好处......
public class MarketsController : Controller
{
private readonly IMarketsRepository marketsRepository;
public AnalysisController(IMarketsRepository marketsRepository)
{
this.marketsRepository = marketsRepository;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑 查看MSIL的最简单方法是什么?
假设我们有一个Class对象.说出来cls.
现在cls.isEnum()回来了true
真高兴!!! 我可以把价值列在我面前吗?(一个糖,没有牛奶)
我需要创建一些实现给定接口的对象,其中创建的具体实现的类型基于Enum值.
当不同的具体实现在运行时需要不同的参数时,我遇到了麻烦.
这个例子(C#)很好:
public enum ProductCategory
{
Modem,
Keyboard,
Monitor
}
public class SerialNumberValidatorFactory()
{
public ISerialNumberValidator CreateValidator(ProductCategory productCategory)
{
switch (productCategory)
{
case ProductCategory.Modem:
return new ModemSerialNumberValidator();
case ProductCategory.Keyboard:
return new KeyboardSerialNumberValidator();
case ProductCategory.Monitor:
return new MonitorSerialNumberValidator();
default:
throw new ArgumentException("productType", string.Format("Product category not supported for serial number validation: {0}", productCategory))
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果具体实现具有不同的构造函数参数会发生什么?我无法将所有值传递给SerialNumberValidatorFactory.CreateValidator()方法,所以我该如何处理?
我听说这种Abstract Factory模式应该可以解决这个问题,但我不确定如何正确实现它.
我有一个正则表达式来搜索特殊字符.
当我搜索数字时,例如3,当我期望得到-1时,我总是得到0.
'3'.search(/[!\"£\$%\^&\*\(\)-_\+=\[\]\{\};:@\'#\\|<,\.>\/\?]/)
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?