关于ZAKER 融媒体解决方案 合作 加入

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

CocoaChina 09-19

我的 views.py 变得太大了 , 很难找到正确的观点 .

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

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

最佳答案

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

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

def view1 ( arg ) : passdef 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 view1from viewsb import view2

快速解释是:当你从视图中编写 import view1 时 ,Python 会查找 view1

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

> views / __ init__.py, 这是第二种情况 . 这里 ,__ init__.py 能够提供 view1 方法 , 因为它导入了它 .

使用这种解决方案 , 您可能无需在 urls.py 中更改 import 或 urlpatterns 参数

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

from viewsa import *from viewsb import *

我实际上不知道速度问题 ( 但我怀疑有没有 ) .

对于模型 , 它可能有点困难 .

以上内容由"CocoaChina"上传发布 查看原文
相关标签 python

觉得文章不错,微信扫描分享好友

扫码分享