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.