2015年7月1日 星期三

Python筆記:Django(1)

安裝:

我是在Raspberry Pi上安裝Django,安裝步驟如下
0. pip安裝
如果要使用python3的話, python3.4.3 因為不是系統預設的python 所以安裝django 需要使用 pip3的協助。安裝pip:# sudo python3.4 get-pip.py



$ wget https://bootstrap.pypa.io/get-pip.py //下載get-pip.py,如果是用Mac請使用"curl -O [URL]"安裝
$ sudo python get-pip.py //pip會將套件安裝於/usr/local/... 所以安裝時需要sudo
$ pip install -U pip //更新
1. 安裝前先更新apt-get, 另外我們會使用到Python 3.4之後的版本,所以在這邊一併更新.



$sudo apt-get update
$sudo apt-get upgrade
//從網路上抓python3.4.3下來,參考https://www.python.org
$ wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz
$ tar xvzf Python-3.4.2.tgz //解壓縮
$ cd Python-3.4.2/ && ./configure && make && sudo make install
//進資料夾,進行configure,make最後在install (這可能會花點時間)
$ rm 資料夾/檔案
2. 安裝Django



$ mkdir Dinbendon //建立資料夾
$ cd Dinbendon
$ python3 -m venv venv/Dinbendon

$ source venv/Dinbendon/bin/activate //進入虛擬環境 離開:$ deactivate
//如果要在虛擬機器中執行Django話 一定要先進入Venv在安裝Django不然會一直跳Error
$ pip install Django==1.8.3 //可直接進行這行

建立Django專案




$ django-admin startproject Dinbendon
執行完之後資料夾大概如下所示,第二個 Dinbendon 是由 django-admin 指令建立的.所有專案相關的東西都應該要在這個目錄裡面;如果你未來想要把這個專案放進版本控制系統,這應該就是專案的根目錄。
Dinbendon
├── Dinbendon
│   ├── Dinbendon
│   │   ├── __init__.py
│   │   ├── settings.py
│   │   ├── urls.py
│   │   └── wsgi.py
│   └── manage.py
└── venv
        └── [裡面是虛擬環境,略]

1. __init__.py:Python 用來標示某個目錄是 module 的檔案。lunch 裡面有這個檔案,就代表 lunch 本身是個合法的 Python module,其他程式可以用 import 把它載入。所有的全域變數都是用大寫與底線構成。這是 Django 設定的命名慣例。

2. settings.py:這個檔案是用來存放 Dinbendon 這個專案的設定。Django 的設定檔其實就是一個 Python 檔,裡面的變數會被當作設定值。除了你現在在 settings.py 裡看得到的內容外,Django 其實還有很多預設值。完整的 Django 設定列表可以在官網文件找到;如果某個設定值在設定檔裡沒有,則會使用內建的預設值。Django 在很多地方都提供了合理的預設值,所以在設定檔裡需要修改的項目並不多。我們之後會回來處理必要的設定。

3. urls.py:當伺服器收到網路要求時,要求裡面會有一個路徑資訊,也就是你在使用瀏覽器時看到的那個網址。這個檔案的內容是用來告訴 Django,當它收到某個(或某些)路徑的要求時,應該要呼叫哪個函式來處理。我們之後會再回來詳細討論路徑,以及 Django 怎麼把它對應到函式。

4. wsgi.py:這個檔案就是讓你的 Django 專案變成 WSGI 應用程式的關鍵。當 WSGI 伺服器收到請求時,就會執行這個檔案,以獲得一個 WSGI 應用程式。

Django Command:

manage.py 是 Django 提供的命令列工具,我們可以利用它執行很多工作,例如同步資料庫、建立 app 等等,指令的使用方式如下:



$ python manage.py <command> [options]

重點整理:

  1. __init__.py 用來告訴Python這個資料夾是一個模組,裡面通常是空的,不過也可以寫一些程式碼在裡面。
  2. manage.py 用來操作整個Django專案的小工具,例如啟動伺服器python manage.py runserver,或是同步資料庫python manage.py syncdb
  3. settings.py 設定檔
  4. urls.py 負責網站的路由。

啟動開發伺服器 -- runserver




$ python manage.py migrate //如果發生錯誤請先執行此行.
//在虛擬環境中不能執行的話,改成python2.7 manage.py migrate

$ python manage.py runserver //執行結果如下.
//如果想指定port,可執行
python manage.py runserver <port> //指定Raspberry PI的IP,沒指定IP的話預設為http://127.0.0.1:8000/



參考資料:
http://ithelp.ithome.com.tw/question/10157423
http://dokelung-blog.logdown.com/posts/220274-django-note-1-building-and-settings
https://docs.djangoproject.com/en/1.8/intro/tutorial01/
http://segmentfault.com/q/1010000000330200
https://www.djangoproject.com/download/
http://hugo-python3.blogspot.tw/2014/01/python-33-django-161.html





沒有留言:

張貼留言