[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-middleware](http://pjb8jo7uj.bkt.clouddn.com/django-middleware-1.svg)
详细的中间件的讲解请参考 [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
}
}
```