Python Web编程,django框架 -- (2)settings文件详解

  1. 创建django项目,打开命令终端,进入想要创建项目的目录,然后执行命令 django-admin startproject xxx (myproject),就创建了项目框架目录及一些初始化的文件。然后进入myproject文件夹,执行命令python manage.py startapp xxx (myapp) 就创建了项目中的一个应用程序,整个目录如下:
image.png
  • manage.py 文件:项目的管理文件,命令的入口

  • myproject 中 settings.py 文件,项目的各种配置内容,下面会详解。

  • myproject 中 urls.py,url路径管理文件,编写各种 路径规则及对应的视图文件

  • myproject 中 wsgi.py,wsgi设置路径

  • myapp 中 admin.py 网站后台管理程序

  • myapp 中 apps.py app注册程序

  • myapp 中 models.py MTV中的Model文件

  • myapp 中 test.py 测试程序中部分功能的程序

  • myapp 中 views.py MTV中的view文件

  1. settings文件详解:
  • 配置文件包括:

  • 项目路径

  • 密钥

  • 域名访问权限

  • App 列表

  • 静态资源,包括CSS、JavaScript 图片等

  • 模板文件

  • 数据库配置

  • 缓存

  • 中间件

  • 配置文件内容:

"""

Django settings for myproject project.

Generated by 'django-admin startproject' using Django 2.2.13.

For more information on this file, see

https://docs.djangoproject.com/en/2.2/topics/settings/

For the full list of settings and their values, see

https://docs.djangoproject.com/en/2.2/ref/settings/

"""

import os

####  项目路径

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# Quick-start development settings - unsuitable for production

# See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/

#### 密钥

# SECURITY WARNING: keep the secret key used in production secret!

SECRET_KEY = 'z(#y8ye=wmra$sfd&n^c#@k5b@cnti0qx%+rc677g2*!2%$8&*'

#### 调试模式

# SECURITY WARNING: don't run with debug turned on in production!

DEBUG = True

#### 域名访问权限

ALLOWED_HOSTS = []

#### App 列表

# Application definition

INSTALLED_APPS = [

    #### 内置的后台管理系统

    'django.contrib.admin',

    #### 内置的用户认证系统

    'django.contrib.auth',

    #### 所有Model元数据

    'django.contrib.contenttypes',

    #### 会话,表示当前访问网站的用户身份

    'django.contrib.sessions',

    #### 消息提示

    'django.contrib.messages',

    #### 静态资源路径

    'django.contrib.staticfiles',

    #### 注册自己的App

    'myapp'

]

#### 中间件是request和response对象之间的钩子

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',

]

#### URL 匹配路径

ROOT_URLCONF = 'myproject.urls'

TEMPLATES = [

    {

        #### 定义模板引擎,前端模板文件的处理程序

        'BACKEND': 'django.template.backends.django.DjangoTemplates',

        #### 设置模板路径

        'DIRS': [],

        #### 是否在App里查找模板文件

        'APP_DIRS': True,

        #### 用于RequestContext上下文的调用函数

        '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',

            ],

        },

    },

]

WSGI_APPLICATION = 'myproject.wsgi.application'

# Database

# https://docs.djangoproject.com/en/2.2/ref/settings/#databases

#### 数据库配置,默认是sqlite,Django2.2 使用mysqlclient或pymysql模块连接MySQL

# DATABASES = {

#     'default': {

#         'ENGINE': 'django.db.backends.sqlite3',

#         'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),

#     }

# }

### 安装并设置mysql客户端程序

### pip install pymysql

### pip install mysqlclient

### export PATH=$PATH:/usr/local/mysql/bin    linux/MAC设置

DATABASES = {

    'default':{

        'ENGINE': 'django.db.backends.mysql',

        'NAME': 'test',

        'USER': 'root',

        'PASSWORD': 'rootroot',

        'HOST': '127.0.0.1',

        'PORT': '3306',

    },

    'anotherdbname':{

        'ENGINE': 'django.db.backends.mysql',

        'NAME': 'test',

        'USER': 'root',

        'PASSWORD': 'rootroot',

        'HOST': '127.0.0.1',

        'PORT': '3307',

    }

}

# Password validation

# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [

    {

        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',

    },

    {

        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',

    },

    {

        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',

    },

    {

        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',

    },

]

# Internationalization

# https://docs.djangoproject.com/en/2.2/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

# Static files (CSS, JavaScript, Images)

# https://docs.djangoproject.com/en/2.2/howto/static-files/

STATIC_URL = '/static/'

你可能感兴趣的:(Python Web编程,django框架 -- (2)settings文件详解)