我有一个嵌套循环,我想打破它。搜索完这个站点之后,最佳实践似乎是将嵌套循环放入函数中,然后使用return来打破它。是否可以在视图.py不是视图的文件?设置此功能的最佳做法是什么?下面是我的视图.py在
@login_required
def save_bookmark(request):
if request.method == 'POST':
form = BookmarkSaveForm(request.POST)
if form.is_valid():
bookmark_list = Bookmark.objects.all()
for bookmark in bookmark_list:
for link in bookmark.link_set.all():
if link.url == form.cleaned_data['url']:
# Do something.
break
else:
# Do something else.
else:
form = BookmarkSaveForm()
return render_to_response('save_bookmark_form.html', {'form': form})
是的。在
views.py
中有不是视图的函数是很好的(我一直这样做)。如果该函数仅用于该模块(即通过该views.py
中的视图)或仅由单个视图函数使用,则这一点尤其合适。在如果你担心把它暴露给外界,你可以把它变成private function。另外,尽量避免给它一个名为
request
的参数,我倾向于在阅读代码时潜意识地解析将请求作为视图函数的函数。在你不应该认为Django视图有任何特殊之处。它只是Python。因此,你可以在任何你喜欢的函数中使用视图.py. 唯一的限制是视图本身必须接受一个请求对象并返回
HttpResponse
的子类。除此之外,您可以在该模块中执行您喜欢的操作,包括让视图使用函数、类或常量。在如果您有很多实用程序函数,为了整洁起见,您可能需要考虑将它们提取到app目录中的a
lib.py
。但如果你只有一两个就没必要那么做。在相关问题 更多 >
编程相关推荐