python基础(二) 包和import
包的创建
文件创建命令
在 Django 中,python manage.py startapp first_app
这一行命令的作用是创建一个新的应用(app),名为 first_app
。在 Django 项目中,"app" 是实现某些功能模块的单独部分,项目可以包含多个 app,每个 app 都专注于特定功能,例如用户管理、博客、评论等。
文件作用
当你运行 startapp
命令时,Django 会在项目目录下生成一个新的文件夹,其中包含一些基础文件,每个文件有特定的用途:
__init__.py
: 表示这是一个 Python 包,可以为空。admin.py
: 用于注册 models,以便通过 Django 的管理界面管理模型数据。apps.py
: 配置 app 的相关设置。models.py
: 用于定义数据库模型,描述数据的结构。tests.py
: 编写自动化测试的地方,确保 app 功能按预期工作。views.py
: 处理 HTTP 请求并返回响应的逻辑放置在这里。migrations
: 包含数据库迁移文件,记录数据模型的变更并同步到数据库。
from和import作用
from ... import ...
语句允许你从指定的模块或包中导入特定的对象(函数、类、变量等),并直接使用它们,无需前缀。
当前包中的导入
如果你在同一个包中导入某个模块中的函数,可以直接用类似以下的方式:
from .file1 import func_in_file1
这里 .file1
表示当前包下的 file1
文件,func_in_file1
是其中的函数名。from .file1
中的 .
代表当前包。
不同包下的导入
当你需要从另一个包中导入模块或函数时,需要指定完整的路径,类似于下面的方式:
from other_package.file1 import func_in_file1
这里 other_package
是另一个包,file1
是文件名,func_in_file1
是文件中的方法。
from .
和 from ..区别
1. from .module import something
(单点 .
)
- 含义:单点
.
表示当前目录,也就是当前包。
my_package/├── __init__.py├── file1.py # 包含 func_in_file1 函数└── file2.py # 需要调用 func_in_file1
在 file2.py
中,如果你想导入 file1.py
中的 func_in_file1
函数,可以这样写:
# file2.py
from .file1 import func_in_file1
这里的 .
表示当前的 my_package
包。
2. from ..module import something
(双点 ..
)
- 含义:双点
..
表示上一级目录(即父包)。 - 作用:从当前模块所在目录的上一级包中导入模块或方法。
- 场景:当你在一个子包中,想要导入父包中的模块或函数时,使用
..
。
project/├── my_package/│ ├── __init__.py│ ├── file1.py│ ├── first_app/│ │ ├── __init__.py│ │ └── views.py│ └── file2.py
在 file2.py
中,如果你想导入 first_app/views.py
中的内容,可以使用以下语法:
# file2.py
from ..first_app import views
这里的 ..
表示当前的 my_package
的上一级目录(即 project
目录),从而跳转到 first_app
模块。
3. 总结区别:
.
(单点):指向当前目录,即当前包,可以用于导入同一个包内的其他模块。..
(双点):指向上一级目录,可以用于从子包中导入父包或同级包的内容。