你见过的最差Django实践
你注意到在使用Django框架时,有哪些最糟糕的错误吗?你有没有见过一些真正的错误用法,可能应该作为警告写进Django的文档里?
10 个回答
11
我试着直接把东西加到我的会话里,而不是先把它们复制出来,再加上去,然后再把整个列表放回会话里。
这个错误在一个新手错误的页面上,所以希望我不是一个人。
这是正确的做法,如果有人感兴趣的话。
sessionlist = request.session['my_list']
sessionlist.append(new_object)
request.session['my_list'] = sessionlist
13
不要把东西拆分成多个应用程序。这里不是说重用的问题,而是一个应用里有十几个模型和超过一百个视图,这样就变得非常难以阅读。而且我喜欢能轻松地查看我的urls.py文件,看看每个网址指向哪里,当我有一百个网址的时候,这就变得很困难了。
27
视图中的逻辑太多了。
我以前写的视图代码常常超过40行,现在我觉得如果缩进层级超过2-3层,或者有10行以上的代码,甚至有几条内联注释,那就说明代码有问题了。
很多人会想,先写简单的模型,搞定网址路由,然后把其他所有逻辑都放在视图里。其实,正确的做法是使用模型方法、管理器、模板标签、上下文处理器,还有基于类的视图和抽象基类……这些都能帮助你保持视图代码的简单和易读。处理表单保存的逻辑应该放在Form.save()里。那些在多个视图开头或结尾重复的逻辑应该放在装饰器里。重复使用的显示逻辑应该放在include
的模板、模板标签和过滤器里。
长的视图代码很难阅读、理解和调试。学会使用工具箱里的其他工具,这样你和你的团队就能省去很多麻烦。