LNMP系列網站零基礎開發記錄(二)

[目錄]
  1. 扯淡吹逼之開發前奏
  2. Django 開發環境搭建及配置
  3. web 頁面開發
  4. Django app開發
  5. Django 站點管理
  6. Python 簡易爬蟲開發
  7. Nginx&uWSGI 服務器配置
  8. ...

 2、Django 開發環境搭建及配置

 1. 開發環境html

  開發環境依然是Windows,能夠開發的django的IDE較多,我只使用過如下幾種python

  1. Eclipse      免費IDE,須要下載pydev插件,代碼提示功能不錯
  2. Visual Studio  須要下載PTVS,結合了VS強大的編輯功能,做爲C#碼農用起來比較順暢,可是不少build in的函數代碼沒有提示
  3. PyCharm      Resharper的開發商開發的Python IDE,代碼提示功能很是強大,特別適合我這種剛學python的又用慣了VS的小菜比

  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.

  1. 表達能力較差,之後慢慢更新,同時[目錄]會隨着跟新進度隨時調整,歡迎你們拍磚!
  2. 網站連接會在數據積累一段時間後提供
相關文章
相關標籤/搜索