Django來(lái)敲門~第一部分【5.1.項(xiàng)目配置settings.py詳解】

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

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

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

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

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

1. 項(xiàng)目配置文件settings.py

創(chuàng)建的Django項(xiàng)目中,會(huì)在根模塊中包含一個(gè)settings.py配置文件挡毅,這個(gè)配置文件中用于配置和管理Django項(xiàng)目的管理運(yùn)維信息

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

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

  • 1.2.1 ABSOLUTE_URL_OVERRIDES:默認(rèn)值:{}
    一個(gè)字典映射“app_label_module_name”字符串到一個(gè)函數(shù)捷枯,該函數(shù)接收一個(gè)Model對(duì)象作為參數(shù)并返回它的url,這是一個(gè)安裝上覆蓋get_absolute_url()方法的方式
  • 1.2.2 ADMIN_FOR:默認(rèn)值:()
    用于admin-site settings模塊专执,如果當(dāng)前站點(diǎn)是admin淮捆,它是一個(gè)由settings模塊組成的tuple字典
  • 1.2.3 ADMIN_MEDIA_PREFIX:默認(rèn)值:"/media/"
    用于給admin模塊設(shè)置媒體、CSS、JS和圖片的前綴攀痊,請(qǐng)確保正確的使用它
  • 1.2.4 ADMINS:默認(rèn)值:()
    一個(gè)包含2個(gè)元素的字典桐腌,列出了有權(quán)接收代碼錯(cuò)誤提示的郵件列表,當(dāng)DEBUG=False時(shí)苟径,如果一個(gè)view引發(fā)了異常案站,Django會(huì)將詳細(xì)信息用電子郵件的方式發(fā)送給這些郵件地址,內(nèi)容格式一般是(名稱,郵箱)棘街,如:(("管理員A",admin@damu.com),("管理員B",manager@damu.com))
  • 1.2.5 ALLOWED_INCLUDE_ROOTS:默認(rèn)值:()
    一個(gè)字符擦混字典蟆盐,列表中的元素為前綴的模板Django才可以以{%ssi%}形式方法,處于安全考慮遭殉,在不應(yīng)該訪問(wèn)時(shí)即使是模板的坐著也不能訪問(wèn)這些文件
  • 1.2.6 APPEND_SLASH:默認(rèn)值:True
    是否給URL添加一個(gè)結(jié)尾的斜線石挂,只有安裝了CommonMiddleware之后,該選項(xiàng)才起作用
  • 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ù)庫(kù)引擎:“posgresql”险污、"mysql"痹愚、"sqlite3"或者"ado_mssql"中的任意一個(gè)
  • 1.2.10 DATABASE_HOST:默認(rèn)值:""
    數(shù)據(jù)庫(kù)所在主機(jī),空字符串意味著使用localhost SQLite.如果你使用MYSQL并且該選項(xiàng)以一個(gè)斜線"/"開(kāi)始罗心,MySQL會(huì)通過(guò)一個(gè)Unix socket連接到指定更多socket
  • 1.2.11 DATABASE_NAME:默認(rèn)值:""
    要使用的數(shù)據(jù)庫(kù)名稱里伯,默認(rèn)的SQLite數(shù)據(jù)庫(kù)不需要該項(xiàng)
  • 1.2.12 DATABASE_PASSWORD:默認(rèn)值:""
    連接數(shù)據(jù)庫(kù)時(shí)的登錄密碼,默認(rèn)的SQLite數(shù)據(jù)庫(kù)不需要該項(xiàng)
  • 1.2.13 DATABASE_PORT:默認(rèn)值:""
    連接數(shù)據(jù)庫(kù)時(shí)使用的端口渤闷,默認(rèn)的SQLite不需要該項(xiàng)
  • 1.2.14 DATABASE_USER:默認(rèn)值:""
    連接數(shù)據(jù)庫(kù)時(shí)使用的用戶名疾瓮,SQLite不需要該項(xiàng)
  • 1.2.15 DATE_FORMAT:默認(rèn)值:"N j, Y"
    對(duì)日期字段使用的默認(rèn)日期格式
  • 1.2.16 DEBUG:默認(rèn)值:False
    一個(gè)開(kāi)關(guān),用于是否打開(kāi)調(diào)試模式
  • 1.2.17 DEFAULT_CHARSET:默認(rèn)值:"utf-8"
    設(shè)置所有HttpResponse對(duì)象的默認(rèn)字符集飒箭,構(gòu)建Content-Type頭數(shù)據(jù)
  • 1.2.18 DEFAULT_CONTENT_TYPE:默認(rèn)值:"text/html"
    設(shè)置所有HttpResponse對(duì)對(duì)象的默認(rèn)數(shù)據(jù)格式狼电,構(gòu)建Content-type頭數(shù)據(jù)
  • 1.2.19 EMAIL_HOST:默認(rèn)值:“l(fā)ocalhost”
    用來(lái)發(fā)送e-mail電子郵件的主機(jī)
    1.2.20 EMAIL_HOST_PASSWORD:默認(rèn)值:""
    EMAIL_HOST選項(xiàng)中定義的SMPT郵箱服務(wù)器登錄密碼,如果為空~Django就不會(huì)嘗試進(jìn)行認(rèn)證
  • 1.2.21 EMAIL_HOST_USER:默認(rèn)值:""
    EMAIL_HOST選項(xiàng)中定義的SMTP服務(wù)器使用的用戶名弦蹂,如果為空~Django將不會(huì)嘗試進(jìn)行認(rèn)證
  • 1.2.22 EMAIL_PORT:默認(rèn)值:25
    EMAIL_HOST選項(xiàng)指定的SMTP服務(wù)器使用的端口號(hào)
  • 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')
    一個(gè)字符串 tuple . 以該tuple中元素為開(kāi)頭的 URL 應(yīng)該被 404 e-mailer 忽略
    1.2.25 INSTALLED_APPS:默認(rèn)值: () (空的 tuple)
    一個(gè)字符串tuple ,內(nèi)容是本 Django 安裝中的所有應(yīng)用. 每個(gè)字符串應(yīng)該是一個(gè)包含Django應(yīng)用程序的Python包的路徑全稱, django-admin.py startapp 會(huì)自動(dòng)往其中添加內(nèi)容.
    1.2.26 INTERNAL_IPS:默認(rèn)值: () (空的 tuple)
    一個(gè) ip 地址的 tuple(字符串形式), 它:
    當(dāng) DEBUG 為 True 時(shí),參閱調(diào)試務(wù)注解
    接收 X 頭(若 XViewMiddleware 已安裝), (參閱 middleware 文檔)
    JING_PATH
    默認(rèn)值: '/usr/bin/jing'
    1.2.27 LANGUAGE_CODE:默認(rèn)值: 'en-us'
    表示默認(rèn)語(yǔ)言的一個(gè)字符串. 必須是標(biāo)準(zhǔn)語(yǔ)言格式. 舉例來(lái)說(shuō), U.S. English 就是 "en-us". 參閱internationalization docs.
    1.2.28 LANGUAGES:默認(rèn)值: 一個(gè) tuple (內(nèi)容為所有可用語(yǔ)言). 目前它的值是:
    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è)置)
    一個(gè)和 ADMINS 同樣格式的 tuple , 當(dāng) SEND_BROKEN_LINK_EMAILS=True 時(shí), 這些人有權(quán)接收死鏈接通知信息.
    1.2.30 MEDIA_ROOT:默認(rèn)值: '' (空的字符串)
    一個(gè)絕對(duì)路徑, 用于保存媒體文件
    1.2.31 MEDIA_URL默認(rèn)值: '' (空的字符串)
    處理媒體服務(wù)的URL(媒體文件來(lái)自 MEDIA_ROOT)
    1.2.32 PREPEND_WWW:默認(rèn)值: False
    是否為沒(méi)有 "www." 前綴的域名添加 "www." 前綴. 當(dāng)且僅當(dāng)安裝有 CommonMiddleware 后該選項(xiàng)才有效
    1.2.33 ROOT_URLCONF默認(rèn)值: Not defined
    一個(gè)字符串,表示你的根 URLconf 的模塊名. 舉例來(lái)說(shuō):"mydjangoapps.urls". 參閱 Django如何處理一個(gè)請(qǐng)求.
    1.2.24 ECRET_KEY默認(rèn)值: '' (空的字符串)
    一個(gè)密碼. 用于為密碼哈希算法提供一個(gè)種子.將其設(shè)置為一個(gè)隨機(jī)字符串 -- 越長(zhǎng)越好. django-admin.py startproject 會(huì)自動(dòng)給你創(chuàng)建一個(gè).
    1.2.25 SEND_BROKEN_LINK_EMAILS默認(rèn)值: False
    當(dāng)有人從一個(gè)有效Django-powered頁(yè)面訪問(wèn)另一個(gè)Django-powered頁(yè)面時(shí)發(fā)現(xiàn)404錯(cuò)誤(也就是發(fā)現(xiàn)一個(gè)死鏈接)時(shí), 是否發(fā)送一封郵件給 MANAGERS. 當(dāng)且僅當(dāng) 安裝有 CommonMiddleware 時(shí)該選項(xiàng)才有效
    1.2.26 SERVER_EMAIL
    默認(rèn)值: 'root@localhost'
    用來(lái)發(fā)送錯(cuò)誤信息的郵件地址, 比如發(fā)送給 ADMINS 和 MANAGERS 的郵件.
    1.2.27 SESSION_COOKIE_AGE:默認(rèn)值: 1209600 (2周, 以秒計(jì))
    session cookies 的生命周期, 以秒計(jì). 參閱 session docs.
    1.2.28 SESSION_COOKIE_DOMAIN:默認(rèn)值: None
    session cookies 有效的域. 將其值設(shè)置為類似 ".lawrence.com" 這樣 cookie 就可以跨域生效, 或者使用None 作為一個(gè)標(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
    是否每次請(qǐng)求都保存session
    1.2.31 SITE_ID默認(rèn)值: Not defined
    是一個(gè)整數(shù), 表示 django_site 表中的當(dāng)前站點(diǎn). 當(dāng)一個(gè)數(shù)據(jù)包含多個(gè)站點(diǎn)數(shù)據(jù)時(shí),你的程序可以據(jù)此 ID 訪問(wèn)特定站點(diǎn)的數(shù)據(jù).
    1.2.32 TEMPLATE_DEBUG默認(rèn)值: False
    一個(gè)布爾值,用來(lái)開(kāi)關(guān)模板調(diào)試模式.若設(shè)置為 True, 如果有任何 TemplateSyntaxError,一個(gè)詳細(xì)的錯(cuò)誤報(bào)告信息頁(yè)將被顯示給你.這個(gè)報(bào)告包括有關(guān)的模板片斷,相應(yīng)的行會(huì)自動(dòng)高亮.
    注意 Django 僅在 DEBUG 為 True 時(shí)顯示這個(gè)信息頁(yè)面.
    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',)
    一個(gè)元素為可調(diào)用對(duì)象(字符串形式的)的 tuple. 這些對(duì)象知道如何導(dǎo)入 templates 從各種源中. 參閱 template documentation.
    1.2.35 EMPLATE_STRING_IF_INVALID默認(rèn)值: '' (空的字符串)
    輸出文本, 作為一個(gè)字符串. 模板系統(tǒng)將會(huì)在出錯(cuò) (比如說(shuō)拼錯(cuò)了) 時(shí)使用該變量. 參閱 How invalid variables are handled.
    1.2.36 TIME_FORMAT默認(rèn)值: 'P' (舉例來(lái)說(shuō) 4 p.m.)
    Django admin change-list 使用的默認(rèn)時(shí)間格式. 有可能系統(tǒng)的其它部分也使用該格式. 參閱 allowed date format strings.
    1.2.37 TIME_ZONE默認(rèn)值: 'America/Chicago' (我們可以用 'Asia/Shanghai PRC' )
    一個(gè)表示當(dāng)前時(shí)區(qū)的字符串. 參閱 選擇項(xiàng)列表.
    Django 據(jù)此設(shè)置轉(zhuǎn)換所有的日期/時(shí)間 -- 并不考慮服務(wù)器的時(shí)區(qū)設(shè)置. 舉例來(lái)說(shuō), 一臺(tái)服務(wù)器可以服務(wù)多個(gè)Django-powered 站點(diǎn),每個(gè)站點(diǎn)使用一個(gè)獨(dú)立的時(shí)區(qū)設(shè)置.
    1.2.38 USE_ETAGS默認(rèn)值: False
    一個(gè)布爾值.指定是否輸出 "Etag" 頭. 這個(gè)選項(xiàng)可以節(jié)省網(wǎng)絡(luò)帶寬,但損失性能. 只有安裝 CommonMiddleware 后這個(gè)選項(xiàng)才有用(參閱 middleware 文檔)

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


Django來(lái)敲門
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凸椿,一起剝皮案震驚了整個(gè)濱河市削祈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌脑漫,老刑警劉巖髓抑,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異优幸,居然都是意外死亡吨拍,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門网杆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)羹饰,“玉大人伊滋,你說(shuō)我怎么就攤上這事《又龋” “怎么了笑旺?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)刹碾。 經(jīng)常有香客問(wèn)我燥撞,道長(zhǎng),這世上最難降的妖魔是什么迷帜? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮色洞,結(jié)果婚禮上戏锹,老公的妹妹穿的比我還像新娘。我一直安慰自己火诸,他們只是感情好锦针,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著置蜀,像睡著了一般奈搜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盯荤,一...
    開(kāi)封第一講書(shū)人閱讀 51,231評(píng)論 1 299
  • 那天馋吗,我揣著相機(jī)與錄音,去河邊找鬼秋秤。 笑死宏粤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的灼卢。 我是一名探鬼主播绍哎,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鞋真!你這毒婦竟也來(lái)了崇堰?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤涩咖,失蹤者是張志新(化名)和其女友劉穎海诲,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體抠藕,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡饿肺,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了盾似。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片敬辣。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡雪标,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出溉跃,到底是詐尸還是另有隱情村刨,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布撰茎,位于F島的核電站嵌牺,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏龄糊。R本人自食惡果不足惜逆粹,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望炫惩。 院中可真熱鬧僻弹,春花似錦、人聲如沸他嚷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)筋蓖。三九已至卸耘,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間粘咖,已是汗流浹背蚣抗。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涂炎,地道東北人忠聚。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像唱捣,于是被迫代替她去往敵國(guó)和親两蟀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

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