我的Django应用程序的文件“views.py”现在有超过4000行代码,而且每次都很难向下滚动到我的文本编辑器中的特定视图。
我想将此文件分成多个文件。
这可行吗?我想我的“urls.py”会相应改变。我还需要保留“views.py”文件吗?
答案 0 :(得分:8)
与models.py
不同,Django中的views.py
文件并不神奇。视图只是一个由URLconf引用的函数,它可以在任何模块中。只需确保通过将完整模块作为文本,使用前缀或导入它来正确引用它:
urls = patterns('',
(r'url1', 'app.views1.my_view1'),
(r'url2', 'app.views2.my_view2')
...
或
from app import views1, views2
urls = patterns('',
(r'url1', views1.my_view1),
(r'url2', views2.my_view2)
...
甚至:
urls = patterns('app.views1',
(r'url1', 'my_view1'),
urls += patterns('app.views2',
(r'url2', 'my_view2'),
答案 1 :(得分:4)
当然,您可以分开您的观点。您也不必更改网址。只需导入另一个文件,原始视图文件将继承另一个文件中的所有内容。
#views.py
from app.other_view import *
def your_view(request):
#your code here
#other_view.py
def your_view(request):
#your code here
答案 2 :(得分:0)
有一些方法可以将默认的views.py,models.py等文件分解为应用程序中自己的模块,但我发现这通常会产生比解决的问题更多的问题。
通常情况下,如果您发现文件太重,那么可能更好地利用您的时间来重构代码。你真的需要所有这些观点吗?有没有办法简化逻辑?您是否可以将功能分解为完全独立的应用程序?这些是你应该问的问题。