虽然reset
并checkout
具有不同用途的大部分时间,我看不出有什么区别在这两个之间.
可能有一个或任何人都--hard
不愿意添加一个选项来做一些基本的checkout
事情.
也许你会看到历史的方式有所不同?
我知道该with
声明可以帮助你解决这个问题:
try:
f = open(my_file)
do_stuff_that_fails()
except:
pass
finally:
f.close()
Run Code Online (Sandbox Code Playgroud)
成:
with open(my_file) as f:
do_stuff_that_fails()
Run Code Online (Sandbox Code Playgroud)
但那怎么样更好?您仍然需要处理无法打开文件的情况(比如提示用户告诉他他没有权限),所以实际上你有:
try:
with open(my_file) as f:
do_stuff_that_fails()
except (IOError, OSError, Failure) as e:
do_stuff_when_it_doesnt_work()
Run Code Online (Sandbox Code Playgroud)
这相当于:
try:
f = open(my_file)
do_stuff_that_fails()
except (IOError, OSError, Faillure) as e:
do_stuff_when_it_doesnt_work()
finally:
f.close()
Run Code Online (Sandbox Code Playgroud)
是的,你获得了两行,但是你添加了一个嵌套级别,这使得它更容易阅读.with
声明的目的是为了节省两行还是我遗漏了什么?
为此添加一个关键字似乎很多,所以我觉得有一些语法来处理额外的尝试/除了我不知道的.
假设您有一家运行大量C/C++的公司,并且您希望开始计划迁移到新技术,这样您就不会像15年前的COBOL公司那样结束.
目前,C/C++运行得非常好,市场上有很多开发者.
但是你现在想开始考虑它,因为考虑到巨大的运行代码库和数据敏感性,你觉得可能需要5到10年才能进入下一步而不会超出预算和开发团队的负担.
你会选择什么?为什么?
它是"选项结束"我习惯在bash中看到(如果是,我们为什么要使用它)或者它是指数或HEAD的Git表示法?
我有一个具有通用关系的模型:
TrackedItem --- genericrelation ---> any model
Run Code Online (Sandbox Code Playgroud)
我希望能够从初始模型中获得跟踪项目.
我应该可以在任何模型上进行,而无需修改它.
为此,我需要获取内容类型和对象ID.获取对象id很简单,因为我有模型实例,但获取内容类型不是:ContentType.object.filter需要模型(只是content_object.__class__.__name__
)和app_label.
我不知道如何以可靠的方式获得模型所在的应用程序.
我现在这样做app = content_object.__module__.split(".")[0]
,但它不适用于django contrib应用程序.
我正在使用ListView根据标签列出视频.过滤发生在get_queryset()中.如果标签不包含任何视频,我想将用户重定向到另一个页面.
有了功能,就很容易了.查询,检查查询集,重定向.在课堂上,我没有这样做:
class VideosView(generic.ListView):
def get_queryset(self):
"""
This work.
"""
tag = self.kwargs.get('tag', None)
self.videos = Video.on_site.all()
if tag:
self.videos = Video.tagged.with_all(tag, self.videos)
return self.videos
def get(self, request, *args, **kwargs):
"""
This doesn't work because self.videos doesn't exist yet.
"""
if not self.videos:
return redirect('other_page')
return super(Videos, self).get(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud) 我必须为API输出JSON构建一个angularjs客户端,如下所示:
{
"count": 10,
"next": null,
"previous": "http://site.tld/api/items/?start=4"
"results": [
{
"url": "http://site.tld/api/items/1.json",
"title": "test",
"description": "",
"user": "http://site.tld/api/users/4.json",
"creation_datetime": "2013-05-08T14:31:43.428"
},
{
"url": "http://site.tld/api/items/2.json",
"title": "test2",
"description": "",
"user": "http://site.tld/api/users/1.json",
"creation_datetime": "2013-05-08T14:31:43.428"
},
{
"url": "http://site.tld/api/items/3.json",
"title": "test3",
"description": "",
"user": "http://site.tld/api/users/2.json",
"creation_datetime": "2013-05-08T14:31:43.428"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能将$resource
它映射到这个?如果我使用isArray=false
,我会将整个blob作为一个对象,可用于阅读,但我无法调用.put()
它.如果我使用isArray
,它只是不起作用.
有没有干净的方法来做到这一点?或者我应该回去使用$http
?
我最近发现Pinax似乎是一个django堆栈,添加了最常用的应用程序,因此很容易并加快开发速度.
我之前从未使用或听说过Pinax,并且想知道您是否对此有任何反馈.我喜欢Django,并想了解Pinax帮助和使用什么工具的Web开发部分.
我将开展一个项目,在这个项目中,需要调整一个相当大的Web应用程序来处理多种语言.事情是用手工制作的PHP代码运行的,但它非常干净.
我想知道最好的方法是什么?
自己做点什么,试着适应实际的架构.
使用将为我管理i18n的框架(例如,Symfony)重写其中的一部分?
对于选项1,我应该在哪里存储i18n数据?*.po,xliff,纯DB?
我想到了另一种选择:仅将Symfony用于翻译,而是将控制器设置为加载网站.快,但很脏.另一方面,它允许我们进行下一次修改,慢慢地移动到完整的Symfony:这个网站真的是一个很好的候选人.
但也许有一些独立的翻译引擎可以比整个Web框架更好地完成工作.这有点像用火箭筒杀死一只苍蝇......
我知道Javascript有一个垃圾收集器.因此,使用delete仅删除对该对象的引用,并且当没有对该对象的引用时,它将被GC删除.
Javascript很棘手,有闭包,模糊名称空间和原型继承,知道何时到现在或为什么并不总是显而易见的.
我正在编写一个相当大的Javascript项目,并希望避免内存泄漏,同时限制全局内存使用.我根本没有处于优化阶段(让我们先把这些东西搞定:-)),但是为了避免编写糟糕的代码,知道内存管理的良好实践会很好.