1. 开发环境html
开发环境依然是Windows,能够开发的django的IDE较多,我只使用过如下几种python
So,咱们坚决果断的选择了PyCharm。mysql
Python 选择了2.7.6,安装后配置环境变量,同时下载setuptools,解压以后运行linux
x:\setuptools-dir> easy_install.py install
安装完后,同时配置添加python-dir/scripts到环境变量,方便运行easy_install命令,同时还能够安装pip,两个都是安装python包的利器,具体有什么差异楼主也没细究,使用方式分别以下web
x:\> easy_install package-name
x:\> pip install package-name
而后就能够用无脑的方式安装后面的包了,django-1.6.5sql
x:\> easy_install django
其次是安装MySQL5.6,一路点下去就行了。shell
至此,开发环境搭建完毕。因为咱们使用的开发工具都有linux的版本,所以换平台也很是容易。Let's go!数据库
2. 项目配置django
SETP.1 打开PyCharm,新建项目,项目名叫errordev,项目类型选择Django Project,点击OK服务器
SETP.2 在弹出的新建app设置里输入app名称errorapp,其余保持默认便可,这样一个崭新的django站点已经创建起来,此时SHIFT+F10便可运行站点,默认使用8000端口
此时咱们能够看见咱们的项目目录结构以下,
errordev
----errorapp
--------__init.py
--------admin.py
--------models.py
--------views.py
----errordev
--------__init__.py
--------settings.py
--------urls.py
--------wsgi.py
----templates
----manage.py
具体哪一个文件有什么用就不单独解释了吧,看名字就知道了,django做为有优秀的MVC框架和.NET MVC有些区别,其views.py完成了controller的功能,而templates则完成了view的功能。
默认django的templates是放在每一个app的目录下的,这样能够保证每一个app的独立性和复用性,可是比较分散,不利于维护,PyCharm在SETP.2的时候提供了templates folder的选项,能够改变默认路径,使得全部的app的templates都集中在一块儿。这里也能够对settings.py直接进行配置
在文件的最上面定义基本路径(PyCharm已自动定义好了)
import os BASE_DIR = os.path.dirname(os.path.dirname(__file__))
而后修改templates的地址,django会在优先在元组中搜寻templates
TEMPLATE_DIRS = ( os.path.join(BASE_DIR, 'templates'), )
在使用PyCharm时,默认的第一个app会自动注册,若是是其它的IDE可能须要手动注册下
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'errorapp', )
同时配置MySQL链接,django是支持多数据库的,一个key-value对即表明了一个数据库链接,model层使用using关键词便可切换数据库,有兴趣的同窗能够自行研究下。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'errordev', 'USER': 'root', 'PASSWORD': '123456', 'HOST': 'localhost', 'PORT': '3306', } }
而后将LANGUAGE_CODE修改成中文,这里是为了使用站点管理功能的时候提供中文界面。
LANGUAGE_CODE = 'zh-cn'
最后就是最头疼的静态文件配置了,google了很久,不少看似有用的方法不知道在楼主这为何没用,so,自力更生,根据官方文档挨个挨个试,这里主要用了三项目
STATIC_ROOT = os.path.join(BASE_DIR, '/media/') STATIC_URL = '/media/' STATICFILES_DIRS = ( os.path.join(BASE_DIR, "media"), )
首先是STATIC_URL,这里主要是告诉django哪些路径是须要映射到静态文件的,然而具体映射到哪里,则是由STATICFILES_DIRS来定义,能够包含多个绝对路径,django在依次搜索全部的目录,直到完成映射。而使用这两个配置的前提,是在INSTALLED_APPS的注册django.contrib.staticfiles,默认是包含了这个模块的,同时这里只保证在
DEBUG = True
的时候生效,也就是只有在DEV环境里使用默认的django开发服务器时生效。
[这里部署的时候会再提到]一般PRD环境里的静态文件都配置在了Apache或者Nginx里,此时这个两个配置实际上是没什么用的,这里就须要引入STATIC_ROOT,它的做用目前我只在PRD环境里用到了,由于将静态文件映射的配置直接写在Aapche或Nginx里是彻底没有问题的,可是咱们在用到django的站点管理功能时,对应的静态文件在PRD环境里就会出现找不到的问题,这里配置了STATIC_ROOT以后,咱们使用shell命令(在PyCharm按住Ctrl+Alt+R,输入collectstatic)会自动将全部的静态文件都收集到STATIC_ROOT目录下,包括站点里咱们本身添加的静态文件和django自己管理功能提供的静态文件,这样PRD环境里管理功能静态文件找不到的问题就解决了
PS.