1. 開發環境
開發環境依然是Windows,可以開發的django的IDE較多,我只使用過以下幾種
So,我們毫不猶豫的選擇了PyCharm。
Python 選擇了2.7.6,安裝后配置環境變量,同時下載setuptools,解壓之后運行
x:/setuptools-dir> easy_install.py install
安裝完后,同時配置添加python-dir/scripts到環境變量,方便運行easy_install命令,同時還可以安裝pip,兩個都是安裝python包的利器,具體有什么差別樓主也沒細究,使用方式分別如下
x:/> easy_install package-name
x:/> pip install package-name
然后就可以用無腦的方式安裝后面的包了,django-1.6.5
x:/> easy_install django
其次是安裝MySQL5.6,一路點下去就好了。
至此,開發環境搭建完畢。由于我們使用的開發工具都有linux的版本,因此換平臺也非常容易。Let's go!
2. 項目配置
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 osBASE_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.
新聞熱點
疑難解答