Python Web編程,django框架 -- (2)settings文件詳解

  1. 創(chuàng)建django項目,打開命令終端,進入想要創(chuàng)建項目的目錄,然后執(zhí)行命令 django-admin startproject xxx (myproject),就創(chuàng)建了項目框架目錄及一些初始化的文件。然后進入myproject文件夾,執(zhí)行命令python manage.py startapp xxx (myapp) 就創(chuàng)建了項目中的一個應(yīng)用程序,整個目錄如下:
image.png
  • manage.py 文件:項目的管理文件,命令的入口

  • myproject 中 settings.py 文件,項目的各種配置內(nèi)容,下面會詳解。

  • myproject 中 urls.py,url路徑管理文件,編寫各種 路徑規(guī)則及對應(yīng)的視圖文件

  • myproject 中 wsgi.py,wsgi設(shè)置路徑

  • myapp 中 admin.py 網(wǎng)站后臺管理程序

  • myapp 中 apps.py app注冊程序

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

  • myapp 中 test.py 測試程序中部分功能的程序

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

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

  • 項目路徑

  • 密鑰

  • 域名訪問權(quán)限

  • App 列表

  • 靜態(tài)資源,包括CSS、JavaScript 圖片等

  • 模板文件

  • 數(shù)據(jù)庫配置

  • 緩存

  • 中間件

  • 配置文件內(nèi)容:

"""

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&*'

#### 調(diào)試模式

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

DEBUG = True

#### 域名訪問權(quán)限

ALLOWED_HOSTS = []

#### App 列表

# Application definition

INSTALLED_APPS = [

    #### 內(nèi)置的后臺管理系統(tǒng)

    'django.contrib.admin',

    #### 內(nèi)置的用戶認證系統(tǒng)

    'django.contrib.auth',

    #### 所有Model元數(shù)據(jù)

    'django.contrib.contenttypes',

    #### 會話,表示當(dāng)前訪問網(wǎng)站的用戶身份

    'django.contrib.sessions',

    #### 消息提示

    'django.contrib.messages',

    #### 靜態(tài)資源路徑

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

        #### 設(shè)置模板路徑

        'DIRS': [],

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

        'APP_DIRS': True,

        #### 用于RequestContext上下文的調(diào)用函數(shù)

        '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

#### 數(shù)據(jù)庫配置,默認是sqlite,Django2.2 使用mysqlclient或pymysql模塊連接MySQL

# DATABASES = {

#     'default': {

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

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

#     }

# }

### 安裝并設(shè)置mysql客戶端程序

### pip install pymysql

### pip install mysqlclient

### export PATH=$PATH:/usr/local/mysql/bin    linux/MAC設(shè)置

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/'
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容