django设置文件——一步一步解释
一旦我们创建了 Django 项目,它就会带有预定义的目录结构,其中包含以下文件,每个文件都有自己的用途。
举个例子
// Create a Django Project "mysite"
django-admin startproject mysite
cd /pathTo/mysite
// Create a Django app "polls" inside project "mysite"
python manage.py startapp polls
在项目“mysite”的终端/CMD目录结构上的这些命令将是:
mysite <-- BASE_DIR
--> mysite
-> __init__.py
-> asgi.py
-> settings.py <-- settings.py file
-> urls.py
-> wsgi.py
--> manage.py
--> polls
关于 settings.py 文件的见解
Django 设置文件包含 Django 项目的所有配置。本文将讨论 Django 的 settings.py 文件的要点。
设置文件只是一个带有模块级变量的Python模块。
BASE_DIR
BASE_DIR 指向项目的顶层层次,即mysite ,我们在项目中定义的任何路径都是相对于 BASE_DIR 的。要使用 BASE_DIR 我们必须使用Python提供的 os 模块。
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
调试
在开发中出现错误是非常明显的。编写一个我们不会遇到任何错误的程序是没有乐趣的。但有时处理错误非常忙碌。 Django 提供了一个内置调试器,它使开发人员的生活变得非常轻松。我们可以通过这样做来使用它:
DEBUG = True // It is Default value and is preferred in only Development Phase.
在生产中,首选DEBUG = False 。
ALLOWED_HOSTS
ALLOWED_HOSTS 是包含所有可以运行 Django 项目的域地址的列表。
When DEBUG set to True
ALLOWED_HOSTS can be an empty list i.e. ALLOWED_HOSTS=[ ] because by Default it is 127.0.0.1 or localhost
When DEBUG set to False
ALLOWED_HOSTS can not be an empty list. We have to give hosts name in list. i.e. ALLOWED_HOSTS=[“127.0.0.1”, “*.heroku.com”]. “127.0.0.1” represents Your PC, “*.heroku.com” represents this application can be run on heroku also.
INSTALLED_APPS
在本节中,我们将提到将在 Django 项目中使用的所有应用程序。以前我们进行了一个应用程序投票,我们必须告诉 Django 它的存在为此必须放入 INSTALLED_APPS:
INSTALLED_APPS = [
// Some preloaded apps by Django,
'polls', // don't forget to quote it and also commas after every app
]
数据库
Django 官方支持以下数据库:
- PostgreSQL
- 玛丽亚数据库
- MySQL
- 甲骨文
- SQLite <– 默认情况下
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
还有一些第三方提供的数据库后端。
这是使用 PostgreSQL 的示例
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': YOUR_DB_NAME,
'USER': USERNAME,
'PASSWORD': PASSWORD_FOR_DB,
'HOST': 'localhost' // in Development.
}
}
Note: Before using PostgreSQL we have to install psycopg2 using
pip install psycopg2
网址变量
URL 变量是相对于 BASE_DIR 的。这些变量用于存储媒体文件或静态文件。
注意:在父目录中创建静态和媒体文件夹。
MEDIA_URL
MEDIA_URL 是 BASE_DIR 的相对路径。此变量用于存储媒体文件。
MEDIA_URL= '/media/'
STATIC_URL
STATIC_URL 是 BASE_DIR 的相对路径。此变量用于存储静态文件。
STATIC_URL = '/static/'
根变量
ROOT 变量是绝对路径。这些变量用于检索媒体文件或静态文件。
MEDIA_ROOT
MEDIA_ROOT 是绝对路径。此变量用于检索媒体文件。
MEDIA_ROOT= os.path.join(BASE_DIR, 'media')
静态根
STATIC_ROOT 是绝对路径。此变量用于检索静态文件。
STATIC_ROOT= os.path.join(BASE_DIR, 'static')
Note: All variable names in Django settings are in CAPITAL.