橡皮擦,一個逗趣的互聯網高級網蟲,新的系列,讓我們一起進入 Django 世界,
已經完成的文章
- 滾雪球學 Python 第三輪,Python Web 之 Django 的世界
- 小手哆嗦一下,就能用 Python Django 實作一個微型博客系統
- Django 做個小后臺,細節在完善一點點,滾雪球學 Python 第三階段
- Django QuerySet 就學那么一點點,一點點就夠了
- 看完這篇博客,Python Django 你就學會一半了
- 讓我們一起開發【菜譜系統】吧,滾雪球學 Python 第三輪專案計劃
- 出現吧,Python Web 菜譜系統的首頁,不會前端技術,也能做
- 簡簡單單實作 Python Web 的登錄注冊頁面,還包含一半邏輯,
- Python Web 菜譜專案再次前進一步,從應用層了解內置用戶認證系統
- 菜譜系統小成階段,Python Web 領域終于攻占一個小山頭
- 銷售 小姐姐 給買家打分系統,用 Python Django 又整了一個花活
- 幫小姐姐打分系統的模型創建,滾雪球學 Python 第三輪第 12 篇
- 為了完成小姐姐安排的打分系統,又熬了一個小時的夜補充視圖與模板
- 打分吧!客服小姐姐,評分頁面與客戶總分頁面的 Django 實作
- 就靠這一篇文章,我就弄懂了 Python Django 的 django-admin 命令列工具集
滾雪球學 Python 第三輪
- 已經完成的文章
- 十六、Django 配置
- 16.1 組態檔概述
- 16.2 CACHES 快取
- 16.2.1 CACHES 快取配置可選引數
- 16.3 組態檔中的資料庫配置
- 16.3.1 DATABASES
- 16.3.2 更多的配置
- 16.4 本篇博客小節
十六、Django 配置
這篇文章主要學習的 Django 的組態檔 settings.py,因為組態檔是一個模塊,所以配置項都是模塊級別的變數,組態檔在使用時需要提前做好配置,你可以打開 manage.py ,然后在 main 函式開頭位置,進行環境變數 DJANGO_SETTINGS_MODULE 的配置,
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cutegirl.settings')
該配置在 wsgi.py 檔案中也存在,為了便于使用 WSGI 部署 Django 應用程式,
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'cutegirl.settings')
application = get_wsgi_application()
16.1 組態檔概述
組態檔可以引入其他檔案的中的變數,也可以使用簡單語法進行動態設定,
Django 除了專案目錄中的 settings.py 檔案外,還存在一個默認組態檔,該檔案存在與 site-packages\django\conf\global_settings.py 檔案中,
代碼檔案頭部注釋如下:
"""
Default Django settings. Override these with settings in the module pointed to
by the DJANGO_SETTINGS_MODULE environment variable.
"""
在檔案中使用 django 配置
在代碼檔案中引入組態檔,使用的匯入代碼為:from django.conf import settings,這里不能采用 from django.conf.settings import 變數 方式進行變數匯入,原因在 django 初始化時,將 settings 設定為了物件,代碼可以在 \site-packages\django\conf\__init__.py 底部查看到,
settings = LazySettings()
組態檔如果進行了修改,必須重啟 django 測驗服務器,
16.2 CACHES 快取
在 django 中定義了專案可以用到的全部快取,default 是快取的別名,BACKEND 是快取的解釋引擎,在 global_settings.py 檔案中可以直接檢索 CACHES 即可找到快取配置,
快取的主要價值是在 Django 中,用戶請求到達視圖 views 后,視圖會先從快取中獲取資料,進行動態渲染,渲染后的結果就是用戶看到的網頁,
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
}
}
快取的 BACKEND 包含如下內容,設定如下:
Memcached 快取
Memcached 是基于記憶體的快取,Django 原生支持的最快最有效的快取系統,推薦使用 Memcached,資料快取在服務器端,
代碼可以參考下述內容:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}
資料庫快取
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'my_cache_table',
}
檔案系統快取
案例以 windows 為參考,其它系統大同小異,
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': 'c:\demo\django_cache'
}
}
本地記憶體快取
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique-snowflake'
}
}
redis 快取
默認采用 1 資料庫
CACHES = {
"default": {
"BACKEND": "redis_cache.cache.RedisCache",
"LOCATION": "localhost:6379",
'TIMEOUT': 60
}
}
16.2.1 CACHES 快取配置可選引數
快取配置引數使用在 default 字典中,代碼格式如下:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'配置引數1': '配置引數值',
'配置引數2': '配置引數值',
'配置引數3': '配置引數值',
'配置引數4': '配置引數值'
}
}
KEY_PREFIX
使用該配置之后,在生成的快取名稱前會自動加上前綴,
TIMEOUT
快取的默認過期時間,以秒為單位,默認值為 300;TIMEOUT 為 None 表示永遠不會過期,值設定成 0 ,快取立即失效,
LOCATION
快取地址,依據 BACKEND 不同,配置也不同,
OPTIONS
配合 BACKEND 傳遞更多的引數,
VERSION
快取的版本號,
其它內容在應用到的時候,可以進行補充,例如 CACHE_MIDDLEWARE_ALIAS,CACHE_MIDDLEWARE_KEY_PREFIX,CACHE_MIDDLEWARE_SECONDS,
16.3 組態檔中的資料庫配置
16.3.1 DATABASES
在 global_settings.py 檔案中,DATABASES 只有一個空字典,但是在專案的 settings.py 中,django 為其初始化了一個值,
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
DATABASES 很容易理解,就是用于指定網站所使用的資料庫型別以及連接方式,最外層的是資料庫別名,值就是資料庫配置資訊,
在我們使用初始化命令創建資料庫的時候,系統自動初始化了一個 sqlite 型別的資料連接,自然可以基于此使用 Django 自帶的后臺管理系統,
不過一般在專案中,我們還是會使用 MySQL,Oracle 這些主流的資料庫,所以該配置必須要牢牢掌握,
下面是基于 MySQL 的配置資訊,
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'scoring',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '3306',
}
}
配置含義非常簡單,直接翻譯即可,
- DATABASE_ENGINE:資料庫引擎;
- DATABASE_NAME:資料庫名稱;
- DATABASE_USER:連接用戶;
- DATABASE_PASSWORD:用戶密碼;
- DATABASE_HOST:主機名;
- DATABASE_PORT:資料庫埠,
16.3.2 更多的配置
ATOMIC_REQUESTS
如果設定為 True,Django 會把每個視圖的資料庫操作封裝到一個資料庫事務中,
AUTOCOMMIT
Django 是否開啟事務,
CONN_MAX_AGE
資料庫會話的宣告周期,默認為 0,表示每次請求結束立刻關閉資料庫連接,
OPTIONS
附加引數,
TIME_ZONE
資料庫所使用的時區,
TEST
配置測驗資料庫,關于測驗資料庫配置支持的引數,可以后續繼續擴展學習,
16.4 本篇博客小節
本篇博客帶大家進入 Django 檔案配置的學習,本文只是其中的一部分,希望能給你提供學習的方向,
相關閱讀
- Python 爬蟲 100 例教程,超棒的爬蟲教程,立即訂閱吧
- Python 游戲世界(更新中,目標文章數 50+,現在訂閱,都是老粉)
- Python 爬蟲小課,精彩 9 講,只要 9 塊 9
今天是持續寫作的第 137 / 200 天,
如果你想跟博主建立親密關系,可以關注同名公眾號 夢想橡皮擦,近距離接觸一個逗趣的互聯網高級網蟲,
博主 ID:夢想橡皮擦,希望大家點贊、評論、收藏,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/278505.html
標籤:其他
上一篇:Python和pycharm安裝程序詳解,內含安裝包小白入門必備【2021年最新】
下一篇:學會LeetCode三道題
