我們創建好了一個Python項目(mysite/)之后,需要在項目中添加模塊應用(polls/),在模塊應用中添加處理功能邏輯,如添加模塊中的視圖處理函數(polls.views.index()),這是一個python項目簡單的結構模型
但是上面的項目應用,這是在一個項目中包含了一個模塊應用,如果讓項目對模塊應用的數據進行管理;同時按照常規項目處理要求,項目中的數據要保存到指定的數據庫中;同時我們得有一個對項目信息進行管理的系統平台;本節內容中就要對於這些亟待解決的問題進行解決(大家同樣可以參考官方文檔的操作方式)
1. 項目配置文件settings.py
創建的Django項目中,會在根模塊中包含一個settings.py
配置文件,這個配置文件中用於配置和管理Django項目的管理運維信息
1.1. 配置文件的特性
- 配置項
settings.py
配置文件中的所有配置項都是大寫的 - 默認值
settings.py
在項目創建時,就初始化了一些默認配置,這些默認配置承載着最基礎的項目信息 - 配置規則
可以從global_settings.py
中導入全局配置,常規情況下,這是不必要的在配置過程中,我們可以隨時通過python manage.py diffsettings
來查看當前settings
文件和默認設置的不同之處
可以通過django.conf.settings
模塊中導入變量,在代碼中訪問配置信息,這樣的話,就可以在程序運行過程中進行動態的settings
配置修改
- 安全性
對於settings
文件包含的信息,涉密的情況很多,需要嚴格控制settings.py
文件的訪問權限,在共享主機的情況下,這一點格外重要。
- 安全性
1.2. 常規配置
友情提示:千萬別修煉下面這些玩意兒!如果興趣不大可以直接翻頁到下一節內容
- 1
- 1.2.1 ABSOLUTE_URL_OVERRIDES:默認值:{}
一個字典映射“app_label_module_name”字符串到一個函數,該函數接收一個Model對象作為參數並返回它的url,這是一個安裝上覆蓋get_absolute_url()方法的方式 - 1.2.2 ADMIN_FOR:默認值:()
用於admin-site settings模塊,如果當前站點是admin,它是一個由settings模塊組成的tuple字典 - 1.2.3 ADMIN_MEDIA_PREFIX:默認值:”/media/”
用於給admin模塊設置媒體、CSS、JS和圖片的前綴,請確保正確的使用它 - 1.2.4 ADMINS:默認值:()
一個包含2個元素的字典,列出了有權接收代碼錯誤提示的郵件列表,當DEBUG=False時,如果一個view引發了異常,Django會將詳細信息用電子郵件的方式發送給這些郵件地址,內容格式一般是(名稱,郵箱),如:((“管理員A”,admin@damu.com),(“管理員B”,manager@damu.com)) - 1.2.5 ALLOWED_INCLUDE_ROOTS:默認值:()
一個字符擦混字典,列表中的元素為前綴的模板Django才可以以{%ssi%}形式方法,處於安全考慮,在不應該訪問時即使是模板的坐着也不能訪問這些文件 - 1.2.6 APPEND_SLASH:默認值:True
是否給URL添加一個結尾的斜線,只有安裝了CommonMiddleware之后,該選項才起作用 - 1.2.7 CACHE_BACKEND:默認值:’simple://’
后盾使用的cache緩存 - 1.2.8 CACHE_MIDDLEWARE_KEY_PREFIX:默認值:”“
cache中間件使用的cache key前綴 - 1.2.9 DATABASE_ENGINE:默認值:”postgresql”
后端使用的數據庫引擎:“posgresql”、”mysql”、”sqlite3”或者”ado_mssql”中的任意一個 - 1.2.10 *DATABASE_HOST:默認值:”“*
數據庫所在主機,空字符串意味着使用localhost SQLite.如果你使用MYSQL並且該選項以一個斜線”/”開始,MySQL會通過一個Unix socket連接到指定更多socket - 1.2.11 *DATABASE_NAME:默認值:”“*
要使用的數據庫名稱,默認的SQLite數據庫不需要該項 - 1.2.12 *DATABASE_PASSWORD:默認值:”“*
連接數據庫時的登錄密碼,默認的SQLite數據庫不需要該項 - 1.2.13 *DATABASE_PORT:默認值:”“*
連接數據庫時使用的端口,默認的SQLite不需要該項 - 1.2.14 *DATABASE_USER:默認值:”“*
連接數據庫時使用的用戶名,SQLite不需要該項 - 1.2.15 DATE_FORMAT:默認值:”N j, Y”
對日期字段使用的默認日期格式 - 1.2.16 DEBUG:默認值:False
一個開關,用於是否打開調試模式 - 1.2.17 *DEFAULT_CHARSET:默認值:”utf-8”*
設置所有HttpResponse對象的默認字符集,構建Content-Type頭數據 - 1.2.18 DEFAULT_CONTENT_TYPE:默認值:”text/html”
設置所有HttpResponse對對象的默認數據格式,構建Content-type頭數據 - 1.2.19 *EMAIL_HOST:默認值:“localhost”*
用來發送e-mail電子郵件的主機 - 1.2.20 *EMAIL_HOST_PASSWORD:默認值:”“*
EMAIL_HOST選項中定義的SMPT郵箱服務器登錄密碼,如果為空~Django就不會嘗試進行認證 - 1.2.21 *EMAIL_HOST_USER:默認值:”“*
EMAIL_HOST選項中定義的SMTP服務器使用的用戶名,如果為空~Django將不會嘗試進行認證 - 1.2.22 *EMAIL_PORT:默認值:25*
EMAIL_HOST選項指定的SMTP服務器使用的端口號 - 1.2.23 ENABLE_PSYCO:默認值False
確定是否使用pscyo優化python代碼,需要依賴psyco模塊 - 1.2.24 IGNORABLE_404_STARTS:默認值: (‘/cgi-bin/’, ‘/vti_bin’, ‘/_vti_inf’)
一個字符串 tuple . 以該tuple中元素為開頭的 URL 應該被 404 e-mailer 忽略 - 1.2.25 *INSTALLED_APPS:默認值: () (空的 tuple)*
一個字符串tuple ,內容是本 Django 安裝中的所有應用. 每個字符串應該是一個包含Django應用程序的Python包的路徑全稱, django-admin.py startapp 會自動往其中添加內容. - 1.2.26 INTERNAL_IPS:默認值: () (空的 tuple)
一個 ip 地址的 tuple(字符串形式), 當 DEBUG 為 True 時,參閱調試務注解接收 X 頭(若 XViewMiddleware 已安裝), (參閱 middleware 文檔)JING_PATH
默認值:'/usr/bin/jing'
- 1.2.27 *LANGUAGE_CODE:默認值: ‘en-us’*
表示默認語言的一個字符串. 必須是標准語言格式. 舉例來說, U.S. English 就是 “en-us”. 參閱internationalization docs. - 1.2.28 *LANGUAGES:默認值: 一個 tuple (內容為所有可用語言).*
目前它的值是:
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:默認值: ADMINS (不論 ADMINS 是否已經設置)
一個和 ADMINS 同樣格式的 tuple , 當 SEND_BROKEN_LINK_EMAILS=True 時, 這些人有權接收死鏈接通知信息. - 1.2.30 MEDIA_ROOT:默認值: ” (空的字符串)
一個絕對路徑, 用於保存媒體文件 - 1.2.31 MEDIA_URL默認值: ” (空的字符串)
處理媒體服務的URL(媒體文件來自 MEDIA_ROOT) - 1.2.32 PREPEND_WWW:默認值: False
是否為沒有 “www.” 前綴的域名添加 “www.” 前綴. 當且僅當安裝有 CommonMiddleware 后該選項才有效 - 1.2.33 ROOT_URLCONF默認值: Not defined
一個字符串,表示你的根 URLconf 的模塊名. 舉例來說:”mydjangoapps.urls”. 參閱 Django如何處理一個請求. - 1.2.34 ECRET_KEY默認值: ” (空的字符串)
一個密碼. 用於為密碼哈希算法提供一個種子.將其設置為一個隨機字符串 越長越好. django-admin.py startproject 會自動給你創建一個. - 1.2.35 SEND_BROKEN_LINK_EMAILS默認值: False
當有人從一個有效Django-powered頁面訪問另一個Django-powered頁面時發現404錯誤(也就是發現一個死鏈接)時, 是否發送一封郵件給 MANAGERS. 當且僅當 安裝有 CommonMiddleware 時該選項才有效 - 1.2.36 SERVER_EMAIL默認值: [‘root@localhost’](mailto:’root@localhost’)用來發送錯誤信息的郵件地址, 比如發送給 ADMINS 和 MANAGERS 的郵件.
- 1.2.37 SESSION_COOKIE_AGE:默認值: 1209600 (2周, 以秒計)session cookies 的生命周期, 以秒計. 參閱 session docs.
- 1.2.38 SESSION_COOKIE_DOMAIN:默認值: Nonesession cookies
有效的域. 將其值設置為類似 “.lawrence.com” 這樣 cookie 就可以跨域生效, 或者使用None 作為一個標准的域 cookie. 參閱 session docs. - 1.2.39 SESSION_COOKIE_NAME默認值: ‘sessionid’
session 使用的cookie 名字. 參閱 session docs. - 1.2.40 SESSION_SAVE_EVERY_REQUEST默認值: False
是否每次請求都保存session - 1.2.41 SITE_ID默認值: Not defined
是一個整數, 表示 django_site 表中的當前站點. 當一個數據包含多個站點數據時,你的程序可以據此 ID 訪問特定站點的數據. - 1.2.42 TEMPLATE_DEBUG默認值: False
一個布爾值,用來開關模板調試模式.若設置為 True, 如果有任何 TemplateSyntaxError,一個詳細的錯誤報告信息頁將被顯示給你.這個報告包括有關的模板片斷,相應的行會自動高亮.注意 Django 僅在 DEBUG 為 True 時顯示這個信息頁面. - 1.2.43 TEMPLATE_DIRS默認值: () (空的 tuple)
模板源文件目錄列表,按搜索順序. 注意要使用 Unix-風格的前置斜線(即’/’), 即便是在 Windows 上. - 1.2.44 TEMPLATE_LOADERS默認值:(‘django.template.loaders.filesystem.load_template_source’,)
一個元素為可調用對象(字符串形式的)的 tuple. 這些對象知道如何導入 templates 從各種源中. 參閱 template documentation. - 1.2.45 EMPLATE_STRING_IF_INVALID默認值: ” (空的字符串)
輸出文本, 作為一個字符串. 模板系統將會在出錯 (比如說拼錯了) 時使用該變量. 參閱 How invalid variables are handled. - 1.2.46 TIME_FORMAT默認值: ‘P’ (舉例來說 4 p.m.)
Django admin change-list 使用的默認時間格式. 有可能系統的其它部分也使用該格式. 參閱 allowed date format strings. - 1.2.47 TIME_ZONE默認值: ‘America/Chicago’ (我們可以用 ‘Asia/Shanghai PRC’ )
一個表示當前時區的字符串. 參閱 選擇項列表.Django 據此設置轉換所有的日期/時間 – 並不考慮服務器的時區設置. 舉例來說, 一台服務器可以服務多個Django-powered 站點,每個站點使用一個獨立的時區設置. - 1.2.48 USE_ETAGS默認值: False
一個布爾值.指定是否輸出 “Etag” 頭. 這個選項可以節省網絡帶寬,但損失性能. 只有安裝 CommonMiddleware 后這個選項才有用(參閱 middleware 文檔)