django项目配置

在使用pycharm创建项目后和app后。需要对项目进行配置。

1.数据库配置

settings.py
-----------
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'dbtest',
        'USERNAME': 'root',
        'PASSWORD': '',
        'CHARSET': 'UTF8'
    }
}
__init__.py
-----------
import pymysql
pymysql.install_as_MySQLdb()

2.静态文件路径配置

settings.py
-------------
STATIC_URL = '/static/'

# 在根目录下创建static文件夹
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

需要注意的是: STATIC_URL代表的是一个url标识,与真正的静态文件路径无关

比如:当我们要请求 https://127.0.0.1:8000/static/a.txt。django会认为是对静态文件的请求

会遍历 STATICFILES_DIRS下的路径,去查找这些路径下的a.txt的文件。一旦找到便返回,不会继续遍历。

如果改为 STATIC_URL = ‘/xxx/‘, https://127.0.0.1:8000/static/a.txt,则找不到文件

总结:STATICFILES_DIRS下才是真正的静态文件目录,django会将/static/后的字符串与DIRS 一一拼接,直到找到响应的文件。

3.中间件

django给我们提供了许多强大的中间件,其中crsf在最初练习时可注释掉。

settings.py
----------------
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

4.app注册

新创建的app需要在settings.py中进行配置

settings.py
---------------------
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',  # 新创建的app
    # 'app01', # 可简写
]

5.模版文件配置

settings.py
--------------------
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

相关推荐