在python中如何导入一个包下的所有模块

时间:2022-05-17 10:38:07 类型:python
字号:    

在使用django的路由时,我们需要在urls文件中定义很多的路径,分别去导入不同模板显得非常麻烦,那么我们可以一下子全部导入,虽然很多时候不推荐这样用,但当的确需要时,还是可以省不少事的

urls文件

from django.urls import path
from . import *
# 从当前目录导入当前__init__.py文件中定义的所有模块

urlpatterns = [
    path('student/index/', studentView.index)
]

在__init__.py文件中定义, 把所有需要导入的模板都定义在all变量中

__all__ = ["studentView"]

导入语句遵循如下规则:

如果包定义文件 __init__.py 存在一个叫做 __all__ 的列表变量,那么在使用 from package import * 的时候就把这个

列表中的所有名字作为包内容导入。作为包的作者,可别忘了在更新包之后保证 __all__ 也更新了啊。

如果 __all__ 真的没有定义,那么使用from adm.views import *这种语法的时候,就不会导入包 adm.views 里的任何子模块

<