1.python中的三种路径
1.1 操作系统文件绝对路径
- django 静态文件查找, 模板查找(第一种)
- os.path
# 去配置好的 文件夹 中查找指定的文件
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
# /teach/shiyanlou_project/syl/apps/user/ # linux
# E:\_000\XSX
1.2 django 导包路径(第二种)
- 第一:
当期文件夹
- 第二:
sys.path
导包之前, 包的上级路径, 需要存在于 python system 的 path
sys.path 这是一个列表
```
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
```
from xxx import yyy 才能成功
在django中创建导包文件
也就是创建的其他文件夹,在这个文件夹下再创建django文件,想要导入这个django文件,就需要把这个文件夹变成导包文件,可以用导包的方式直接导入。
1,在django下再创建一个文件,在这个文件下再创建一个django文件。
2,再setting.py文件中配置:
import sys
#把apps目录, 注册到python解释器系统的导包路径中, 以后就可以导入这个目录下的包了.
sys.path.insert(0, os.path.join(BASE_DIR, ‘apps’))
3,再右键这个文件,选择 标记目录为 源码 根,之后导包就可以正常导包了,例如在主路由中配置时的导包。
1.3 django 模型引用路径(第三种)
想使用 一个 models.py 文件中的模型
apps名称.model模型名
'users.User'
我们在写用户模型时,可以继承django中的自带用户类
1,在model中的配置
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
需要额外添加的字段
2,在重写后,需要把我们自己重写的这个User类,来替换之前django默认的用户类
在settings.py中配置
#指默认的用户名, 模型路径, django特有的, ‘应用名. 模型名‘
AUTH_USER_MODEL = ‘user.User’
3,包括后期在其他的app应用中,如果需要使用这个重写的User模型,就需要用模型路径导包(应用名.模型名)。
django中一共有是三种导包方式:
扩展:也可以在django的源码中,添加需要的字段,但这种方式不适合后期部署项目,因为会改变django的源码,不建议使用。