[toc]
---
## 安裝
> django的安裝很簡單,部署好Python環境之后,使用`pip` 或者 `easy_install` 等命令就可以完成django的安裝,不過推薦使用 `pip`;當然也可以采用源碼安裝,只不過相對更復雜而已,沒有必要自尋煩惱啦~
---
默認安裝最新的版本
pip install django
或者可以安裝指定版本的
pip install django==2.1.4
## 配置
首次安裝安裝之后可以先根據 `django-admin.py startproject demo` 來初始化一個demo項目,然后可以具體研究django的配置 `demo/demo/settings.py`
```python
root@pts/6 $ django-admin.py startproject demo
root@pts/6 $ tree demo/
demo/
├── demo
│?? ├── __init__.py
│?? ├── settings.py
│?? ├── urls.py
│?? └── wsgi.py
└── manage.py
1 directory, 5 files
```
---
### ALLOWED_HOSTS
該選項相當于添加白名單,限定只有那些IP或者域名等才可以訪問當前的服務,提高安全性,強烈不建議配置成`*`
---
### INSTALLED_APPS
添加通過`python manage.py startapp appname` 創建的應用的appname 。
django`一個項目`可以構建`多個APP`;類比一個門戶網站可能存在新聞板塊、論壇版本等多個模塊一樣。
---
### MIDDLEWARE
django的中間件其實是`一系列類`, 是在發出request之后,到達view function之間和 view function到 response請求之間存在的一些處理。下面的圖很形象的說明

詳細的中間件的講解請參考 [django 中間件詳解](http://django.colinspace.com/866398)
---
### ROOT_URLCONF
這個保持系統默認生成就行,代表的是當前項目的URL的入口位置
---
### TEMPLATES
django是采用MTV模型
+ M是指Model,業務對象到數據庫對象的映射(ORM)
+ T是指Template 即模板,負責如何把需要的數據通過頁面展示給用戶
+ V是指View 視圖,處理具體的業務邏輯,也可以在適當的時候調用Model和Template
`TEMPLATES` 配置一般修改其中的 `'DIRS': []` 配置即可, 比如
# 在 appname/templates/appname/ 下面找 具體的頁面
'DIRS': [os.path.join('templates')]
參考:[MVC和MTV模型](http://www.cnblogs.com/zgf-666/p/9218873.html)
---
### WSGI_APPLICATION
和`ROOT_URLCONF`一樣,保持系統自動生成即可,不做修改。
### DATABASES
django目前支持的數據庫包括:MySQL、oracle、sqlite3、postgresql
默認配置sqlite3:
```
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
```
修改為默認為mysql
```
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.msyql',
'HOST': 'xxx.xxx.xx.xx',
'USER': 'xdevops',
'PASSWORD': 'X@devops#2099',
'NAME': 'xdevopsdb',
'PORT': 3306
}
}
```