Django來敲門~第一部分【5.1.項目配置settings.py詳解】

夫唯不爭,故天下莫能與之爭
——老子《道德經(jīng)》

本節(jié)內(nèi)容

  • 1.項目配置文件settings.py介紹
  • 2.數(shù)據(jù)庫配置【MySQL】
  • 3.創(chuàng)建模型對象并和數(shù)據(jù)庫同步
  • 4.python官方提供的項目后臺管理平臺的使用
    注意:本節(jié)內(nèi)容我們會按照三部分進(jìn)行分步講解

我們創(chuàng)建好了一個Python項目(mysite/)之后,需要在項目中添加模塊應(yīng)用(polls/),在模塊應(yīng)用中添加處理功能邏輯,如添加模塊中的視圖處理函數(shù)(polls.views.index()),這是一個python項目簡單的結(jié)構(gòu)模型

但是上面的項目應(yīng)用,這是在一個項目中包含了一個模塊應(yīng)用,如果讓項目對模塊應(yīng)用的數(shù)據(jù)進(jìn)行管理;同時按照常規(guī)項目處理要求,項目中的數(shù)據(jù)要保存到指定的數(shù)據(jù)庫中;同時我們得有一個對項目信息進(jìn)行管理的系統(tǒng)平臺;本節(jié)內(nèi)容中就要對于這些亟待解決的問題進(jìn)行解決(大家同樣可以參考官方文檔的操作方式)

1. 項目配置文件settings.py

創(chuàng)建的Django項目中,會在根模塊中包含一個settings.py配置文件,這個配置文件中用于配置和管理Django項目的管理運維信息

1.1. 配置文件的特性
  • 配置項
    settings.py配置文件中的所有配置項都是大寫的
  • 默認(rèn)值
    settings.py在項目創(chuàng)建時,就初始化了一些默認(rèn)配置,這些默認(rèn)配置承載著最基礎(chǔ)的項目信息
  • 配置規(guī)則
    可以從global_settings.py中導(dǎo)入全局配置,常規(guī)情況下,這是不必要的
    在配置過程中,我們可以隨時通過python manage.py diffsettings來查看當(dāng)前settings文件和默認(rèn)設(shè)置的不同之處
    可以通過django.conf.settings模塊中導(dǎo)入變量,在代碼中訪問配置信息,這樣的話,就可以在程序運行過程中進(jìn)行動態(tài)的settings配置修改
  • 安全性
    對于settings文件包含的信息,涉密的情況很多,需要嚴(yán)格控制settings.py文件的訪問權(quán)限,在共享主機(jī)的情況下,這一點格外重要。
1.2. 常規(guī)配置

前一段時間江湖流行武術(shù)打假,接下來,就是一堆的硬功夫了~~非常之枯燥,看看就行,我們只需要知道別人的招數(shù)是做什么用的就好!,當(dāng)然,絕招還是會提示的
友情提示:千萬別修煉下面這些玩意兒!如果興趣不大可以直接翻頁到下一節(jié)內(nèi)容

  • 1.2.1 ABSOLUTE_URL_OVERRIDES:默認(rèn)值:{}
    一個字典映射“app_label_module_name”字符串到一個函數(shù),該函數(shù)接收一個Model對象作為參數(shù)并返回它的url,這是一個安裝上覆蓋get_absolute_url()方法的方式
  • 1.2.2 ADMIN_FOR:默認(rèn)值:()
    用于admin-site settings模塊,如果當(dāng)前站點是admin,它是一個由settings模塊組成的tuple字典
  • 1.2.3 ADMIN_MEDIA_PREFIX:默認(rèn)值:"/media/"
    用于給admin模塊設(shè)置媒體、CSS、JS和圖片的前綴,請確保正確的使用它
  • 1.2.4 ADMINS:默認(rèn)值:()
    一個包含2個元素的字典,列出了有權(quán)接收代碼錯誤提示的郵件列表,當(dāng)DEBUG=False時,如果一個view引發(fā)了異常,Django會將詳細(xì)信息用電子郵件的方式發(fā)送給這些郵件地址,內(nèi)容格式一般是(名稱,郵箱),如:(("管理員A",admin@damu.com),("管理員B",manager@damu.com))
  • 1.2.5 ALLOWED_INCLUDE_ROOTS:默認(rèn)值:()
    一個字符擦混字典,列表中的元素為前綴的模板Django才可以以{%ssi%}形式方法,處于安全考慮,在不應(yīng)該訪問時即使是模板的坐著也不能訪問這些文件
  • 1.2.6 APPEND_SLASH:默認(rèn)值:True
    是否給URL添加一個結(jié)尾的斜線,只有安裝了CommonMiddleware之后,該選項才起作用
  • 1.2.7 CACHE_BACKEND:默認(rèn)值:'simple://'
    后盾使用的cache緩存
  • 1.2.8 CACHE_MIDDLEWARE_KEY_PREFIX:默認(rèn)值:""
    cache中間件使用的cache key前綴
  • 1.2.9 DATABASE_ENGINE:默認(rèn)值:"postgresql"
    后端使用的數(shù)據(jù)庫引擎:“posgresql”、"mysql"、"sqlite3"或者"ado_mssql"中的任意一個
  • 1.2.10 DATABASE_HOST:默認(rèn)值:""
    數(shù)據(jù)庫所在主機(jī),空字符串意味著使用localhost SQLite.如果你使用MYSQL并且該選項以一個斜線"/"開始,MySQL會通過一個Unix socket連接到指定更多socket
  • 1.2.11 DATABASE_NAME:默認(rèn)值:""
    要使用的數(shù)據(jù)庫名稱,默認(rèn)的SQLite數(shù)據(jù)庫不需要該項
  • 1.2.12 DATABASE_PASSWORD:默認(rèn)值:""
    連接數(shù)據(jù)庫時的登錄密碼,默認(rèn)的SQLite數(shù)據(jù)庫不需要該項
  • 1.2.13 DATABASE_PORT:默認(rèn)值:""
    連接數(shù)據(jù)庫時使用的端口,默認(rèn)的SQLite不需要該項
  • 1.2.14 DATABASE_USER:默認(rèn)值:""
    連接數(shù)據(jù)庫時使用的用戶名,SQLite不需要該項
  • 1.2.15 DATE_FORMAT:默認(rèn)值:"N j, Y"
    對日期字段使用的默認(rèn)日期格式
  • 1.2.16 DEBUG:默認(rèn)值:False
    一個開關(guān),用于是否打開調(diào)試模式
  • 1.2.17 DEFAULT_CHARSET:默認(rèn)值:"utf-8"
    設(shè)置所有HttpResponse對象的默認(rèn)字符集,構(gòu)建Content-Type頭數(shù)據(jù)
  • 1.2.18 DEFAULT_CONTENT_TYPE:默認(rèn)值:"text/html"
    設(shè)置所有HttpResponse對對象的默認(rèn)數(shù)據(jù)格式,構(gòu)建Content-type頭數(shù)據(jù)
  • 1.2.19 EMAIL_HOST:默認(rèn)值:“l(fā)ocalhost”
    用來發(fā)送e-mail電子郵件的主機(jī)
    1.2.20 EMAIL_HOST_PASSWORD:默認(rèn)值:""
    EMAIL_HOST選項中定義的SMPT郵箱服務(wù)器登錄密碼,如果為空~Django就不會嘗試進(jìn)行認(rèn)證
  • 1.2.21 EMAIL_HOST_USER:默認(rèn)值:""
    EMAIL_HOST選項中定義的SMTP服務(wù)器使用的用戶名,如果為空~Django將不會嘗試進(jìn)行認(rèn)證
  • 1.2.22 EMAIL_PORT:默認(rèn)值:25
    EMAIL_HOST選項指定的SMTP服務(wù)器使用的端口號
  • 1.2.23 ENABLE_PSYCO:默認(rèn)值False
    確定是否使用pscyo優(yōu)化python代碼,需要依賴psyco模塊
    1.2.24 IGNORABLE_404_STARTS:默認(rèn)值: ('/cgi-bin/', '/_vti_bin', '/_vti_inf')
    一個字符串 tuple . 以該tuple中元素為開頭的 URL 應(yīng)該被 404 e-mailer 忽略
    1.2.25 INSTALLED_APPS:默認(rèn)值: () (空的 tuple)
    一個字符串tuple ,內(nèi)容是本 Django 安裝中的所有應(yīng)用. 每個字符串應(yīng)該是一個包含Django應(yīng)用程序的Python包的路徑全稱, django-admin.py startapp 會自動往其中添加內(nèi)容.
    1.2.26 INTERNAL_IPS:默認(rèn)值: () (空的 tuple)
    一個 ip 地址的 tuple(字符串形式), 它:
    當(dāng) DEBUG 為 True 時,參閱調(diào)試務(wù)注解
    接收 X 頭(若 XViewMiddleware 已安裝), (參閱 middleware 文檔)
    JING_PATH
    默認(rèn)值: '/usr/bin/jing'
    1.2.27 LANGUAGE_CODE:默認(rèn)值: 'en-us'
    表示默認(rèn)語言的一個字符串. 必須是標(biāo)準(zhǔn)語言格式. 舉例來說, U.S. English 就是 "en-us". 參閱internationalization docs.
    1.2.28 LANGUAGES:默認(rèn)值: 一個 tuple (內(nèi)容為所有可用語言). 目前它的值是:
    LANGUAGES = (
    ('bn', _('Bengali')),
    ('cs', _('Czech')),
    ('cy', _('Welsh')),
    ('da', _('Danish')),
    ('de', _('German')),
    ('en', _('English')),
    ('es', _('Spanish')),
    ('fr', _('French')),
    ('gl', _('Galician')),
    ('is', _('Icelandic')),
    ('it', _('Italian')),
    ('no', _('Norwegian')),
    ('pt-br', _('Brazilian')),
    ('ro', _('Romanian')),
    ('ru', _('Russian')),
    ('sk', _('Slovak')),
    ('sr', _('Serbian')),
    ('sv', _('Swedish')),
    ('zh-cn', _('Simplified Chinese')),
    )
    1.2.29 MANAGERS:默認(rèn)值: ADMINS (不論 ADMINS 是否已經(jīng)設(shè)置)
    一個和 ADMINS 同樣格式的 tuple , 當(dāng) SEND_BROKEN_LINK_EMAILS=True 時, 這些人有權(quán)接收死鏈接通知信息.
    1.2.30 MEDIA_ROOT:默認(rèn)值: '' (空的字符串)
    一個絕對路徑, 用于保存媒體文件
    1.2.31 MEDIA_URL默認(rèn)值: '' (空的字符串)
    處理媒體服務(wù)的URL(媒體文件來自 MEDIA_ROOT)
    1.2.32 PREPEND_WWW:默認(rèn)值: False
    是否為沒有 "www." 前綴的域名添加 "www." 前綴. 當(dāng)且僅當(dāng)安裝有 CommonMiddleware 后該選項才有效
    1.2.33 ROOT_URLCONF默認(rèn)值: Not defined
    一個字符串,表示你的根 URLconf 的模塊名. 舉例來說:"mydjangoapps.urls". 參閱 Django如何處理一個請求.
    1.2.24 ECRET_KEY默認(rèn)值: '' (空的字符串)
    一個密碼. 用于為密碼哈希算法提供一個種子.將其設(shè)置為一個隨機(jī)字符串 -- 越長越好. django-admin.py startproject 會自動給你創(chuàng)建一個.
    1.2.25 SEND_BROKEN_LINK_EMAILS默認(rèn)值: False
    當(dāng)有人從一個有效Django-powered頁面訪問另一個Django-powered頁面時發(fā)現(xiàn)404錯誤(也就是發(fā)現(xiàn)一個死鏈接)時, 是否發(fā)送一封郵件給 MANAGERS. 當(dāng)且僅當(dāng) 安裝有 CommonMiddleware 時該選項才有效
    1.2.26 SERVER_EMAIL
    默認(rèn)值: 'root@localhost'
    用來發(fā)送錯誤信息的郵件地址, 比如發(fā)送給 ADMINS 和 MANAGERS 的郵件.
    1.2.27 SESSION_COOKIE_AGE:默認(rèn)值: 1209600 (2周, 以秒計)
    session cookies 的生命周期, 以秒計. 參閱 session docs.
    1.2.28 SESSION_COOKIE_DOMAIN:默認(rèn)值: None
    session cookies 有效的域. 將其值設(shè)置為類似 ".lawrence.com" 這樣 cookie 就可以跨域生效, 或者使用None 作為一個標(biāo)準(zhǔn)的域 cookie. 參閱 session docs.
    1.2.29 SESSION_COOKIE_NAME默認(rèn)值: 'sessionid'
    session 使用的cookie 名字. 參閱 session docs.
    1.2.30 SESSION_SAVE_EVERY_REQUEST默認(rèn)值: False
    是否每次請求都保存session
    1.2.31 SITE_ID默認(rèn)值: Not defined
    是一個整數(shù), 表示 django_site 表中的當(dāng)前站點. 當(dāng)一個數(shù)據(jù)包含多個站點數(shù)據(jù)時,你的程序可以據(jù)此 ID 訪問特定站點的數(shù)據(jù).
    1.2.32 TEMPLATE_DEBUG默認(rèn)值: False
    一個布爾值,用來開關(guān)模板調(diào)試模式.若設(shè)置為 True, 如果有任何 TemplateSyntaxError,一個詳細(xì)的錯誤報告信息頁將被顯示給你.這個報告包括有關(guān)的模板片斷,相應(yīng)的行會自動高亮.
    注意 Django 僅在 DEBUG 為 True 時顯示這個信息頁面.
    1.2.33 TEMPLATE_DIRS默認(rèn)值: () (空的 tuple)
    模板源文件目錄列表,按搜索順序. 注意要使用 Unix-風(fēng)格的前置斜線(即'/'), 即便是在 Windows 上.
    1.2.34 TEMPLATE_LOADERS默認(rèn)值:('django.template.loaders.filesystem.load_template_source',)
    一個元素為可調(diào)用對象(字符串形式的)的 tuple. 這些對象知道如何導(dǎo)入 templates 從各種源中. 參閱 template documentation.
    1.2.35 EMPLATE_STRING_IF_INVALID默認(rèn)值: '' (空的字符串)
    輸出文本, 作為一個字符串. 模板系統(tǒng)將會在出錯 (比如說拼錯了) 時使用該變量. 參閱 How invalid variables are handled.
    1.2.36 TIME_FORMAT默認(rèn)值: 'P' (舉例來說 4 p.m.)
    Django admin change-list 使用的默認(rèn)時間格式. 有可能系統(tǒng)的其它部分也使用該格式. 參閱 allowed date format strings.
    1.2.37 TIME_ZONE默認(rèn)值: 'America/Chicago' (我們可以用 'Asia/Shanghai PRC' )
    一個表示當(dāng)前時區(qū)的字符串. 參閱 選擇項列表.
    Django 據(jù)此設(shè)置轉(zhuǎn)換所有的日期/時間 -- 并不考慮服務(wù)器的時區(qū)設(shè)置. 舉例來說, 一臺服務(wù)器可以服務(wù)多個Django-powered 站點,每個站點使用一個獨立的時區(qū)設(shè)置.
    1.2.38 USE_ETAGS默認(rèn)值: False
    一個布爾值.指定是否輸出 "Etag" 頭. 這個選項可以節(jié)省網(wǎng)絡(luò)帶寬,但損失性能. 只有安裝 CommonMiddleware 后這個選項才有用(參閱 middleware 文檔)

未完待續(xù):請看下一節(jié)5.2 模型和數(shù)據(jù)庫交互


Django來敲門
最后編輯于
?著作權(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)容