BASE_DIR
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#表示当前文件所在路径的上一级的上一级的路径,可以多次嵌套上一级
sys.path
作用:
在import
或者from import
的时候,可导入包的路径
使用:
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
#在导包时,python解析器会在当前目录、已安装和第三方模块中搜索 xxx,如果都搜索不到就会报错。
使用sys.path.append()
和 sys.path.insert
方法可以临时添加搜索路径,方便更简洁的import其他包和模块。这种方法导入的路径会在python程序退出后失效。
os.path
os.path.join(A,B)
#将A路径和B路径拼接在一起
os.path.dirname(BASE_DIR)
#表示BASE_DIR所在路径的上一级
os与sys的区别
总结就是,os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;
sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。
AUTH_USER_MODEL
指明自定义的用户模型类:
AUTH_USER_MODEL = 'users.User'
注意:后面只能出现一个.
,所以我们要想办法简化路径信息,修改base_dir的路径,然后再sys.path.insert(0,os.path.join(BASE_DIR,'apps'))
会添加apps包到相对路径的搜寻包路径,就可以直接搜寻到apps下面的users应用
配置文件的搜寻路径
该配置的目的是配置文件生效的路径
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxx路径下.settings")
数据库配置
mysql:
#setting.py文件
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', #数据库类型,默认sqlite
'HOST': '192.168.22.1', # 数据库主机
'PORT': 3306, # 数据库端口
'USER': 'databaseusername', # 数据库用户名(使用权限分配一个新账号)
'PASSWORD': 'secret', # 数据库用户密码
'NAME': 'databasename' # 数据库名字
},
#最外层的init文件,设置使用的数据库是mysql
import pymysql
pymysql.install_as_MySQLdb()
redis:
CACHES={
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://10.211.55.5:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
"session": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://10.211.55.5:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
}
# 给admin站点使用的session数据库
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"
本地化语言与时区
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
增加域名
ALLOWED_HOSTS = ['127.0.0.1', 'www.meiduo.site', 'api.meiduo.site', 'localhost']