Django step0

45
Learning Django Step 0 Cd Chen The co-founder of passpass.cc / niceStudio.

description

2013/04/14 在 KSDG 的 Workshop 之投影片

Transcript of Django step0

Page 1: Django step0

Learning Django Step 0

Cd ChenThe co-founder of passpass.cc / niceStudio.

Page 2: Django step0

About

陳永昇 (Cd Chen)http://www.cdchen.idv.tw/

學歷:國⽴立台中科技⼤大學經歷:聯成電腦講師恆逸資訊講師現職:乃師實業技術總監passpass.cc 創辦⼈人證照:

RHCE / LPIC / NCLP MCSA / MCSE OCPJP / OCPJWCDTCSE / NSPA

Page 3: Django step0

出發之前

Page 4: Django step0

我希望您...• 最好動⼿手玩⼀一玩• 有問題不要客氣• ⼿手機請關閉聲⾳音• ⽤用最舒服⾃自在的⽅方式• 請包容我的粗⼼心

Page 5: Django step0

我假設您已經具備...• 知道什麼是 HTML

• 最好具備開發 Web 應⽤用程式的經驗

• 有辦法編輯⽂文字檔• 如果懂 Python 語法更棒

Page 6: Django step0

Python 基本觀念• ⾮非強制型別程式語⾔言• 強迫格式• 無 switch 語法

• http://openhome.cc/Gossip/Python/

Page 7: Django step0

Django 簡介

Page 8: Django step0

關於 Django• 基於 Python

• 敏捷開發之網站開發框架• MVC 設計模式

• 最新版本:1.5

• http://djangoproject.com/

Page 9: Django step0

簡史• 最早為 Lawrence, Kansas 新聞網站

• 2005/06 以 BSD License 公開

• 2008/06 成⽴立 Django Software Foundation

Page 10: Django step0

重要案例• Pinterest

• Instagram

• Mozilla

• The Washington Times

• Public Broadcasting Service

• passpass.cc

Page 11: Django step0

優點• 內建 ORM

• 簡易的版型語法• 廣泛的 3rd-Party App

• 內建管理主控台• 內建基本的安全措施

Page 12: Django step0

缺點• NoSQL??

• 無內建 Connection-Pool

• 版型系統速度較慢

Page 13: Django step0

詞彙• Project / App

• Model / View / Template

Page 14: Django step0

建置 Django 環境

Page 15: Django step0

準備動作• 需安裝下列元件:• Python 2 / Python 3

• pip / easy_install

• virtualenv (⾮非必要,但強烈建議)

Page 16: Django step0

安裝 Django[cdchen@devel django-demo]$ virtualenv djangoenvNew python executable in djangoenv/bin/python2.7Also creating executable in djangoenv/bin/pythonInstalling setuptools............done.Installing pip...............done.[cdchen@devel django-demo]$ ls djangoenv/bin include lib lib64[cdchen@devel django-demo]$ source djangoenv/bin/activate(djangoenv)[cdchen@devel django-demo]$ cd djangoenv/(djangoenv)[cdchen@devel djangoenv]$

Page 17: Django step0

安裝 Django(djangoenv)[cdchen@devel djangoenv]$ pip install djangoDownloading/unpacking django Downloading Django-1.5.1.tar.gz (8.0MB): 8.0MB downloaded Running setup.py egg_info for package django

warning: no previously-included files matching '__pycache__' found under directory '*'

...

changing mode of /home/cdchen/django-demo/djangoenv/bin/django-admin.py to 775Successfully installed djangoCleaning up...(djangoenv)[cdchen@devel djangoenv]$

Page 18: Django step0

建⽴立 Django 專案(djangoenv)[cdchen@devel djangoenv]$ lsbin include lib lib64(djangoenv)[cdchen@devel djangoenv]$ django-admin.py \> startproject ksdg(djangoenv)[cdchen@devel djangoenv]$ lsbin include ksdg lib lib64(djangoenv)[cdchen@devel djangoenv]$ ls ksdg/ksdg manage.py(djangoenv)[cdchen@devel djangoenv]$ ls ksdg/ksdg/__init__.py settings.py urls.py wsgi.py(djangoenv)[cdchen@devel djangoenv]$

Page 19: Django step0

Django 專案架構

Page 20: Django step0

設定 Django 組態• 檔案:<PROJECT>/settings.py

• 重要參數:• DATABASES

• TIME_ZONE

• TEMPLATE_DIRS

• INSTALLED_APPS

Page 21: Django step0

定義 URL 組態• 檔案:<PROJECT>/urls.py

• 定義 URL 與對應的 View

• Ref:https://docs.djangoproject.com/en/1.5/topics/http/urls/

Page 22: Django step0

practice

1.建⽴立⼀一個名為 ksdg 的 Django 專案2.將資料庫設定為 sqlite3

•名稱:sqlite3.db3.加⼊入或啟⽤用下列 App

•django.contrib.sites•django.contrib.flatpages

4.加⼊入下列 URL 對應 url(‘^pages/’, include(‘django.contrib.flatpages.urls’))

Page 23: Django step0

Django 的開發環境

Page 24: Django step0

manage.py• Django 專案環境的管理⼯工具

• 可⽤用來• 管理資料庫• 啟動開發伺服器• 備份、還原資料• ...

Page 25: Django step0

管理資料庫• 建⽴立資料表:

manage.py syncdb

• inspect:manage.py inspectdb

• 產⽣生 SQL Script:

• sql / sqlall / sqlclear / sqlcustom / sqlfulsh / sqlindexes / ...

Page 26: Django step0

啟動開發伺服器manage.py runserver [OPTIONS] [[ADDR:]PORT]

• 預設:127.0.0.1:8000

• 優點:會⾃自動載⼊入修改的程式碼• 限制:同時僅允許⼀一個連線

Page 27: Django step0

備份與還原資料• 備份:

manage.py dumpdata [APP [MODULE]]...

• 可配合 -a 備份所有模組

• 建議加上 -n 參數

• 還原:manage.py loaddata FILES...

Page 28: Django step0

practice

1.建⽴立 ksdg 專案的資料庫2.啟動開發伺服器3.開啟 http://localhost:8000/ 網址4.備份與還原資料

Page 29: Django step0

Django 管理主控台

Page 30: Django step0

關於管理主控台• Django 內建管理主控台

• 可快速開發管理主控台模組• 可⾃自定版型• django-grappelli

• django-admin-tools

• Nexus

Page 31: Django step0

設定管理主控台• 需啟⽤用下列 App

• django.contrib.admin

• 需啟⽤用下列 URL 對應

• url(r’^admin/’, ...)

• 注意:admin.autodiscover()

Page 32: Django step0

建⽴立管理者帳號• ⽅方法:• 在 manage.py syncdb 時

• 在 manage.py syncdb 後

• manage.py createsuperuser

Page 33: Django step0
Page 34: Django step0
Page 35: Django step0

practice

1.啟⽤用 Django Admin 應⽤用程式2.建⽴立⼀一個管理者帳號3.登⼊入 Django Admin 管理主控台4.在 Flatpages 應⽤用程式中增加⼀一筆資料

Page 36: Django step0

Django 版型系統

Page 37: Django step0

設定版型⼦子系統• 重要參數:• TEMPLATE_LOADERS

• TEMPLATE_DIRS

Page 38: Django step0

<!DOCTYPE html><html> <head> <title>{{ flatpage.title }}</title> </head><body>{{ flatpage.content }}</body></html>

<TEMPLATE_DIR>/flatpages/default.html

Context Variable

Page 39: Django step0

Template Filter

<!DOCTYPE html><html> <head> <title>{{ flatpage.title }}</title> </head><body>{{ flatpage.content|truncatewords_html:3 }}</body></html>

<TEMPLATE_DIR>/flatpages/default.html

Page 40: Django step0

Template Tag

<!DOCTYPE html><html> <head> <title>{{ flatpage.title }}</title> </head><body>{{ flatpage.content|truncatewords_html:3 }}<p>Now: {% now "jS F Y H:i" %}</p></body></html>

<TEMPLATE_DIR>/flatpages/default.html

Page 41: Django step0

practice

1.修改 TEMPLATE_DIRS 設定值2.在 <TEMPLATE_DIR> 中建⽴立 flatpages ⺫⽬目錄3.在 flatpages ⺫⽬目錄中建⽴立 default.html 檔案4.編輯 default.html5.開啟 http://localhost:8000/pages/ 網址

Page 42: Django step0

下⼀一步呢??

Page 43: Django step0

• 詳閱官網上的 Tutorial

• 徹底研究 Django ORM 技術

• 了解 Django URL confs

• 熟悉 Template Filter / Tags 語法

• 表單處理• 佈署 Django App 的技術

Page 44: Django step0

參考資料• https://docs.djangoproject.com/

• http://www.djangobook.com/

• https://www.djangopackages.com/

• http://www.planetdjango.org/

Page 45: Django step0

Q & A