Django開發(fā)項(xiàng)目的一些設(shè)置

Django開發(fā)項(xiàng)目的一些設(shè)置

以項(xiàng)目為shop為例

開發(fā)環(huán)境配置

我們通常需要具備多個(gè)環(huán)境的配置文件混弥,如開發(fā)環(huán)境和生產(chǎn)環(huán)境犹芹,并進(jìn)行切換

創(chuàng)建包shop/shop/settings在其中可以創(chuàng)建dev.py表示開發(fā)環(huán)境,prod.py表示生產(chǎn)環(huán)境

manage.py中修改代碼即可

import os
import sys

if __name__ == "__main__":
    # os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings")
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "shop.settings.dev")

配置mysql

  1. 在配置文件中配置

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'shop',
            'USER': 'root',
            'PASSWORD': '491521',
            'HOST': '127.0.0.1',
            'PORT': '3306'
        }
    }
    
  2. __init__.py中配置pymysql的驅(qū)動(dòng)

    # 配置pymysql作為數(shù)據(jù)庫驅(qū)動(dòng)
    import pymysql
    pymysql.install_as_MySQLdb()
    

配置Jinja2模板引擎

  1. 創(chuàng)建shop/shop/utils包,在其中創(chuàng)建my_jinja2文件,在其中編寫代碼

    from __future__ import absolute_import  # Python 2 only
    
    from django.contrib.staticfiles.storage import staticfiles_storage
    from django.urls import reverse
    
    from jinja2 import Environment
    
    def environment(**options):
        env = Environment(**options)
        env.globals.update({
            'static': staticfiles_storage.url,
            'url': reverse,
        })
        return env
    
  2. 在配置文件中進(jìn)行配置

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.jinja2.Jinja2', # 加載jinja2引擎
            'DIRS': [os.path.join(BASE_DIR,'templates')], #模板存儲(chǔ)位置
            'APP_DIRS': True,
            'OPTIONS': {
                'environment':'shop.utils.my_jinja2.environment', #設(shè)置全局的環(huán)境變量方法
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    

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

  1. 安裝第三方pip install django-redis==4.8.0

  2. settings配置文件中配置

    # redis配置
    CACHES = {
        "default": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379/1",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "PASSWORD": "491521",
            }
        },
        "session": {
            "BACKEND": "django_redis.cache.RedisCache",
            "LOCATION": "redis://127.0.0.1:6379/0",
            "OPTIONS": {
                "CLIENT_CLASS": "django_redis.client.DefaultClient",
                "PASSWORD": "491521",
            }
        }
    }
    # session狀態(tài)保持信息存儲(chǔ)位置
    SESSION_ENGINE = "django.contrib.sessions.backends.cache"
    SESSION_CACHE_ALIAS = "session"
    

日志工程的配置

  • 目的: 可以配置日志信息, 記錄用戶的訪問行為, 或者程序運(yùn)行的行為
  1. 創(chuàng)建文件夾logs

  2. 在配置文件中進(jìn)行配置

    # 日志
    LOGGING = {
        'version': 1,
        'disable_existing_loggers': False,  # 是否禁用已經(jīng)存在的日志器
        'formatters': {  # 日志信息顯示的格式
            'verbose': {
                'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
            },
            'simple': {
                'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
            },
        },
        'filters': {  # 對日志進(jìn)行過濾
            'require_debug_true': {  # django在debug模式下才輸出日志
                '()': 'django.utils.log.RequireDebugTrue',
            },
        },
        'handlers': {  # 日志處理方法
            'console': {  # 向終端中輸出日志
                'level': 'INFO',
                'filters': ['require_debug_true'],
                'class': 'logging.StreamHandler',
                'formatter': 'simple'
            },
            'file': {  # 向文件中輸出日志
                'level': 'INFO',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': os.path.join(BASE_DIR, 'logs/meiduo.log'),  # 日志文件的位置
                'maxBytes': 300 * 1024 * 1024,
                'backupCount': 10,
                'formatter': 'verbose'
            },
        },
        'loggers': {  # 日志器
            'django': {  # 定義了一個(gè)名為django的日志器
                'handlers': ['console', 'file'],  # 可以同時(shí)向終端與文件中輸出日志
                'propagate': True,  # 是否繼續(xù)傳遞日志信息
                'level': 'INFO',  # 日志器接收的最低日志級(jí)別
            },
        }
    }
    

靜態(tài)文件集成

  • 目的: 可以將項(xiàng)目中用到的靜態(tài)文件集成到工程中
  1. 創(chuàng)建文件夾static

  2. 在配置文件中配置

    # 配置靜態(tài)文件資源存儲(chǔ)位置的(絕對路徑)
    STATICFILES_DIRS = [
         os.path.join(BASE_DIR,'static')
    ]
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子尾膊,更是在濱河造成了極大的恐慌,老刑警劉巖荞彼,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冈敛,死亡現(xiàn)場離奇詭異,居然都是意外死亡鸣皂,警方通過查閱死者的電腦和手機(jī)抓谴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寞缝,“玉大人癌压,你說我怎么就攤上這事【B剑” “怎么了滩届?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長慎宾。 經(jīng)常有香客問我丐吓,道長浅悉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任券犁,我火速辦了婚禮术健,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘粘衬。我一直安慰自己荞估,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布稚新。 她就那樣靜靜地躺著勘伺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪褂删。 梳的紋絲不亂的頭發(fā)上飞醉,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音屯阀,去河邊找鬼缅帘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛难衰,可吹牛的內(nèi)容都是我干的钦无。 我是一名探鬼主播,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼盖袭,長吁一口氣:“原來是場噩夢啊……” “哼失暂!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起鳄虱,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對情侶失蹤弟塞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后醇蝴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宣肚,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年悠栓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了霉涨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惭适,死狀恐怖笙瑟,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情癞志,我是刑警寧澤往枷,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響错洁,放射性物質(zhì)發(fā)生泄漏秉宿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一屯碴、第九天 我趴在偏房一處隱蔽的房頂上張望描睦。 院中可真熱鬧,春花似錦导而、人聲如沸忱叭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽韵丑。三九已至,卻和暖如春虚缎,著一層夾襖步出監(jiān)牢的瞬間撵彻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國打工实牡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留千康,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓铲掐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親值桩。 傳聞我的和親對象是個(gè)殘疾皇子摆霉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容