python - 在几个文件中拆分views.py

我的 views.py 太大了,很难找到合适的 View 。

如何将其拆分为多个文件然后导入?是否涉及速度损失?

我可以对 models.py 做同样的事情吗?

最佳答案

在 Django 中,一切都是 Python 模块 (*.py)。您可以创建一个包含 __init__.py 的 View 文件夹,您仍然可以导入您的 View ,因为这也实现了一个 Python 模块。但是举个例子会更好。

您的原始 views.py 可能如下所示:

def view1(arg):
    pass

def view2(arg):
   pass

使用以下文件夹/文件结构,它的工作方式相同:

views/
   __init__.py
   viewsa.py
   viewsb.py

viewsa.py:

def view1(arg):
    pass

viewsb.py:

def view2(arg):
    pass

__init__.py:

from viewsa import view1
from viewsb import view2

快速的解释是:当你写from views import view1 Python会在

中寻找view1
  1. views.py,这是第一个(原始)案例中发生的情况

  2. views/__init__.py,就是第二种情况。在这里,__init__.py 能够提供 view1 方法,因为它导入了它。

使用这种解决方案,您可能无需更改 urls.py

中的 importurlpattern 的参数

如果您在每个新 View 文件中都有许多方法,您可能会发现在 views/__init__.py 中使用 * 进行导入很有用,如下所示:

from viewsa import *
from viewsb import *

我实际上不知道速度问题(但我怀疑是否存在)。

对于模型来说,这可能有点困难。

https://stackoverflow.com/questions/1921771/

相关文章:

python - 在批处理文件中休眠

linux - 如何 RSYNC 单个文件?

linux - shell脚本杀死监听端口3000的进程?

python - 如何在 Python 中进行 scp?

linux - Unix:如何删除文件中列出的文件

linux - Shell - 将变量内容写入文件

python - 在 IPython 中自动重新加载模块

python - 打印 Python 类的所有属性

c - 如何在linux c程序中获取pthread的线程ID?

python - 如何为子图设置 xlim 和 ylim