是否可以从数据库刷新django对象的状态?我的意思是行为大致相当于:
new_self = self.__class__.objects.get(pk=self.pk)
for each field of the record:
setattr(self, field, getattr(new_self, field))
Run Code Online (Sandbox Code Playgroud)
更新:在跟踪器中找到了重新打开/未修正的战争:http://code.djangoproject.com/ticket/901 .还是不明白为什么维护者不喜欢这个.
Javascript Math.random()在不同浏览器中使用的算法有多好?是否可以用它来生成盐和一次性密码?
random我可以使用多少位?
我需要调试由它生成的子进程multiprocessing.Process().该pdbdegugger似乎不知道分叉的,无法连接到已经运行的进程.
有没有更智能的python调试器可以附加到子进程?
有没有一种惯用的方法来记录返回多个值的函数的结果?这不会编译:
import "log"
func returnPair() (int,int) {
return 42, 24
}
func main() {
log.Printf("Returned %v", returnPair())
}
prog.go:7: multiple-value returnPair() in single-value context
Run Code Online (Sandbox Code Playgroud)
UPD 摘要(特别感谢@rvigacio):
这是 Go 语法的一个特点:
func eat(args ...interface{}) {}
func eatWithSpice(spice string, args ...interface{}) {}
func main() {
eat(returnPair()) // this works
eatWithSpice("pepper", returnPair()) // this does not
}
Run Code Online (Sandbox Code Playgroud)
作为一种特殊情况,如果函数或方法 g 的返回值数量相等并且可单独分配给另一个函数或方法 f 的参数,则调用 f(g(parameters_of_g)) 将在绑定返回值后调用 f g 的参数按顺序传递给 f 的参数。f 的调用除了 g 的调用之外不能包含任何参数,并且 g 必须至少有一个返回值。如果 f 有一个最终的 ... 参数,则为它分配常规参数分配后保留的 g 的返回值。(http://golang.org/ref/spec#Calls)
我使用nginx作为apache服务器的前端.配置文件如下所示:
upstream apache {
server localhost:8000;
}
server {
listen 80;
error_page 503 /www/static/503.html;
# need some magic here #
location /static/ {
root /www/static/;
}
location / {
proxy_path http://apache/;
}
}
Run Code Online (Sandbox Code Playgroud)
现在,当apache关闭时,我收到一个由nginx生成的简单502页面.如何使它服务于我的自定义错误页面并返回状态代码503,这在这种情况下更相关?
我试图--thread-sanitizer在OSX上使用clang的选项:
$ clang++ -fthread-sanitizer -fpic tsan1.cc
Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)
Target: x86_64-apple-darwin12.3.0
Thread model: posix
[...]
clang -cc1 version 4.2 based upon LLVM 3.2svn default target x86_64-apple-darwin12.3.0
[...]
Undefined symbols for architecture x86_64:
"___tsan_func_entry", referenced from:
threadfunc(void*) in tsan1-6f7gbr.o
[...]
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
看起来像一个链接错误.我应该链接一些额外的库吗?
生产者用一些值填充通道并关闭它.在消费者方面,我想将所有值加起来并将循环留在最后.我的解决方案如下:
total := 0
for {
v, ok := <- ch
if !ok { break }
total += v
}
Run Code Online (Sandbox Code Playgroud)
还有更优雅的方式吗?