Django的settings.py配置文件相關配置


HTML模板目錄templates

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]   # 指定html文件所在的位置目錄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',
            ],
        },
    },
]

靜態文件配置

settings.py末尾添加

# 靜態文件夾的別名
STATIC_URL = '/static/'

# 所有靜態文件(css/js/圖片)都放在我下面你配置的文件夾中
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

數據庫配置

默認使用sqlite3

使用MySQL的配置方法:

# 數據庫相關的配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 連接的數據庫類型
        'NAME': "db",  # 數據庫名稱
        'HOST': '127.0.0.1',  # 連接數據庫的地址
        'PORT': 3306,  # 端口
        'USER': 'root',  # 用戶
        'PASSWORD': '123456'  # 密碼
    }
}

 由於Django內部連接MySQL時使用的是MySQLdb模塊,而python3中還無此模塊,所以需要使用pymysql來代替

配置與settings.py同級下的 __init__.py文件(如沒有 __init__.py文件需新創建一個)。設置如下:

import pymysql
pymysql.install_as_MySQLdb()    #  告訴Django用pymysql來替換默認的MySQLdb

APP配置

新創建的APP需要配置,Django才能找到

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'也可以這樣寫
]

配置用戶上傳文件的默認路徑

用戶上傳的數據會根據該目錄,結合UserInfo表中upload_to='avatarDir/' 參數來拼接當前目錄

1.用戶表models.py 詳情

from django.db import models
 
# Create your models here.
from django.contrib.auth.models import AbstractUser
 
class UserInfo(AbstractUser):
    """
    用戶信息
    """
 
    nid = models.AutoField(primary_key=True)
    nickname = models.CharField(verbose_name='昵稱', max_length=32)
    telephone = models.CharField(max_length=11, blank=True, null=True, unique=True, verbose_name='手機號碼')
    avatar = models.FileField(verbose_name='頭像', upload_to='avatarDir/', default="avatar/default.png")  # 設置用戶上傳頭像
    create_time = models.DateTimeField(verbose_name='創建時間', auto_now_add=True)
    blog = models.OneToOneField(to='Blog', to_field='nid', null=True)
 
    def __str__(self):
        return self.username
models.py

2.settings.py 配置 MEDIA_ROOT 路徑

# Django用戶上傳的都叫media文件
MEDIA_URL = "/media/"
# media配置,用戶上傳的文件都默認放在這個文件夾下
MEDIA_ROOT = os.path.join(BASE_DIR, "media")

3.如需要用戶通過Url可以直接訪問上傳的文件,需要配置 urls.py指定 MEDIA_ROOT 路徑

from django.conf.urls import url
from django.contrib import admin
from blog import views
# 需要導入serve和settings配置
from django.views.static import serve  
from django.conf import settings
 
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # media 配置 圖片存儲路徑可直接訪問
    url(r'^media/(?P<path>.*)$', serve, {"document_root":settings.MEDIA_ROOT}),
]

 

Session配置

1. 數據庫Session
SESSION_ENGINE = 'django.contrib.sessions.backends.db'   # 引擎(默認)

2. 緩存Session
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'  # 引擎
SESSION_CACHE_ALIAS = 'default'                            # 使用的緩存別名(默認內存緩存,也可以是memcache),此處別名依賴緩存的設置

3. 文件Session
SESSION_ENGINE = 'django.contrib.sessions.backends.file'    # 引擎
SESSION_FILE_PATH = None                                    # 緩存文件路徑,如果為None,則使用tempfile模塊獲取一個臨時地址tempfile.gettempdir() 

4. 緩存+數據庫
SESSION_ENGINE = 'django.contrib.sessions.backends.cached_db'        # 引擎

5. 加密Cookie Session
SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies'   # 引擎

其他公用設置項:
SESSION_COOKIE_NAME = "sessionid"                       # Session的cookie保存在瀏覽器上時的key,即:sessionid=隨機字符串(默認)
SESSION_COOKIE_PATH = "/"                               # Session的cookie保存的路徑(默認)
SESSION_COOKIE_DOMAIN = None                             # Session的cookie保存的域名(默認)
SESSION_COOKIE_SECURE = False                            # 是否Https傳輸cookie(默認)
SESSION_COOKIE_HTTPONLY = True                           # 是否Session的cookie只支持http傳輸(默認)
SESSION_COOKIE_AGE = 1209600                             # Session的cookie失效日期(2周)(默認)
SESSION_EXPIRE_AT_BROWSER_CLOSE = False                  # 是否關閉瀏覽器使得Session過期(默認)
SESSION_SAVE_EVERY_REQUEST = False                       # 是否每次請求都保存Session,默認修改之后才保存(默認)

Admin中文界面顯示

LANGUAGE_CODE = 'zh-hans'  #修改成中文

TIME_ZONE = 'Asia/Shanghai'  #設置時區

USE_I18N = True

USE_L10N = True

USE_TZ = False    #如果是True就是取國際時間,False 是取本地時間

時間格式化

USE_L10N = False

DATETIME_FORMAT = 'Y-m-d H:i:s'

DATE_FORMAT = 'Y-m-d'

終端打印SQL語句

在Django項目的settings.py文件中,在最后復制粘貼如下代碼:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level':'DEBUG',
        },
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM