代码之家  ›  专栏  ›  技术社区  ›  Olivier Verdier

django应用程序中的导入策略

  •  3
  • Olivier Verdier  · 技术社区  · 14 年前

    我想知道django可重用应用程序中最好的导入策略是什么。

    假设我有一个叫做 usefulapp . 在我的应用程序中,我需要访问,比如说,模型。我应该使用显式导入作为:

    import usefulapp.models
    

    或者简单地说,因为我在这个应用程序中,我可以使用:

    import models
    

    使用第二种方法有缺点吗?

    2 回复  |  直到 7 年前
        1
  •  3
  •   Ignacio Vazquez-Abrams    14 年前

    第二种方法假设 . sys.path 在可能包含 models 模块。没有要求 . 在它的所有,所以进口或通过 relative imports

        2
  •  3
  •   lprsd    14 年前

    就我个人而言,我尽量保持习惯,总是从应用程序导入。

    不要从项目导入,因为项目名称可以更改;你的应用程序可以在其他项目中使用(至少你应该制作这样的应用程序)。

    不从导入 models 直接因为,正如伊格纳西奥正确地提到的,没有必要 .

    但是,应用程序名称总是在python路径上。Django将它们添加到python路径(通过 set_environ(settings) ),位于列表的顶部,因此您可以放心,始终会拾取正确的文件。