Django: The web framework for perfectionists with deadlines.
django是python最流行的框架之一,特點是大而全,自帶模板系統(tǒng)、優(yōu)秀的ORM框架,還有完善的后臺管理系統(tǒng)。
這次建站為了使用xadmin,考慮到其兼容性,故選擇了python2.7.13,Django1.9.13(這個版本在今年上半年已經(jīng)不再支持了,建議大家使用1.11LTS)
xadmin是國人開發(fā)的基于django的后臺管理系統(tǒng),用到了bootstrap,還有許多自帶的插件(然而我沒怎么研究),雖然不知道比官方的強(qiáng)在哪里,不過挺好用的就是了
Django settings.py配置
settings.py是django項目的配置文件,很多重要的參數(shù)都要在這里設(shè)置
DEBUG
在開發(fā)環(huán)境中,DEBUG應(yīng)設(shè)置為TRUE,在404、500等頁面會有詳細(xì)的錯誤提示,同時會自動啟動用于處理靜態(tài)文件的中間件
ALLOWED_HOSTS
ALLOWED_HOSTS設(shè)置允許訪問的ip,DEBUG = TRUE時不用管它,DEBUG = FALSE時必須配置,通常配置為'*'即可
INSTALLED_APPS & 根路徑設(shè)置
INSTALLED_APPS是一個列表,收錄所以需要加載的應(yīng)用。在django項目中,我們自己創(chuàng)建的每個app自然都要加進(jìn)去。
通常,我們自建的app都放在根目錄下,當(dāng)項目很龐大時,app的數(shù)量就會很多。這是我們可以新建一個apps的package,將app們放進(jìn)去,以便于目錄結(jié)構(gòu)的整潔。
但這時有必要設(shè)置根路徑了,下面這行代碼就起了這樣的作用
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
AUTH_USER_MODEL & AUTHENTICATION_BACKENDS
django自帶有認(rèn)證系統(tǒng),但默認(rèn)的user表有時并不能滿足我們的需求。登陸方法也是,默認(rèn)的登陸后臺只能通過用戶名進(jìn)行登陸。這是我們就會用到這兩個參數(shù)了。
AUTH_USER_MODEL = "users.UserProfile"
AUTHENTICATION_BACKENDS = (
'users.views.CustomBackend',
)
TEMPLATES & DATABASES
django有自己默認(rèn)的模板引擎,但也可以換成其他的,完全根據(jù)個人喜好。
django中默認(rèn)的數(shù)據(jù)庫是sqlite3,同樣可以選用其他數(shù)據(jù)庫,也可以啟用多個數(shù)據(jù)庫。比如session的存儲就能用到redis或mongodb。
本地化設(shè)置
通常設(shè)置成這樣即可:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False
靜態(tài)、媒體文件配置
STATIC_URL = '/static/'
# STATICFILES_DIRS = (
# os.path.join(BASE_DIR, "static"),
# )
STATIC_ROOT = os.path.join(BASE_DIR, "static")
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
這些變量中,兩個URL是用于模板使用的,這里注意要和ROOT寫成“一樣的”
在DEBUG = True時,指定STATICFILES_DIRS即可配置靜態(tài)文件;而在DEBUG = False時,需要這樣配置urls.py文件:
from django.views.static import serve
urlpatterns = [
url(r'^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT}),
]
當(dāng)然,DEBUG = False即意味著生產(chǎn)環(huán)境,沒人會這樣配置的==