Learning Django    Step 0               Cd Chen   The co-founder of passpass.cc / niceStudio.
陳永昇 (Cd Chen)               Ahttp://www.cdchen.idv.tw/   b學歷:國⽴立台中科技⼤大學                            o經歷:                   ...
出發之前
我希望您...• 最好動⼿手玩⼀一玩• 有問題不要客氣• ⼿手機請關閉聲⾳音• ⽤用最舒服⾃自在的⽅方式• 請包容我的粗⼼心
我假設您已經具備...• 知道什麼是 HTML• 最好具備開發 Web 應⽤用程式的經驗• 有辦法編輯⽂文字檔• 如果懂 Python 語法更棒
Python 基本觀念• ⾮非強制型別程式語⾔言• 強迫格式• 無 switch 語法• http://openhome.cc/Gossip/Python/
Django 簡介
關於 Django• 基於 Python• 敏捷開發之網站開發框架• MVC 設計模式• 最新版本:1.5• http://djangoproject.com/
簡史• 最早為 Lawrence, Kansas 新聞網站• 2005/06 以 BSD License 公開• 2008/06 成⽴立 Django Software Foundation
重要案例• Pinterest• Instagram• Mozilla• The Washington Times• Public Broadcasting Service• passpass.cc
優點• 內建 ORM• 簡易的版型語法• 廣泛的 3rd-Party App• 內建管理主控台• 內建基本的安全措施
缺點• NoSQL??• 無內建 Connection-Pool• 版型系統速度較慢
詞彙• Project / App• Model / View / Template
建置 Django 環境
準備動作• 需安裝下列元件: • Python 2 / Python 3 • pip / easy_install • virtualenv (⾮非必要,但強烈建議)
安裝 Django[cdchen@devel django-demo]$ virtualenv djangoenvNew python executable in djangoenv/bin/python2.7Also creating exe...
安裝 Django(djangoenv)[cdchen@devel djangoenv]$ pip install djangoDownloading/unpacking django  Downloading Django-1.5.1.tar...
建⽴立 Django 專案(djangoenv)[cdchen@devel   djangoenv]$ lsbin include lib lib64(djangoenv)[cdchen@devel   djangoenv]$ django-a...
Django 專案架構
設定 Django 組態• 檔案:<PROJECT>/settings.py• 重要參數: • DATABASES • TIME_ZONE • TEMPLATE_DIRS • INSTALLED_APPS
定義 URL 組態• 檔案:<PROJECT>/urls.py• 定義 URL 與對應的 View• Ref: https://docs.djangoproject.com/en/1.5/ topics/http/urls/
practice1.建⽴立⼀一個名為 ksdg 的 Django 專案2.將資料庫設定為 sqlite3  •名稱:sqlite3.db3.加⼊入或啟⽤用下列 App  • django.contrib.sites  •django.contr...
Django 的開發環境
manage.py• Django 專案環境的管理⼯工具• 可⽤用來 • 管理資料庫 • 啟動開發伺服器 • 備份、還原資料 • ...
管理資料庫• 建⽴立資料表:  manage.py syncdb• inspect:  manage.py inspectdb• 產⽣生 SQL Script: • sql / sqlall / sqlclear / sqlcustom /  ...
啟動開發伺服器manage.py runserver [OPTIONS][[ADDR:]PORT]• 預設:127.0.0.1:8000• 優點:會⾃自動載⼊入修改的程式碼• 限制:同時僅允許⼀一個連線
備份與還原資料• 備份: manage.py dumpdata [APP [MODULE]]... • 可配合 -a 備份所有模組 • 建議加上 -n 參數• 還原: manage.py loaddata FILES...
practice1.建⽴立 ksdg 專案的資料庫2.啟動開發伺服器3.開啟 http://localhost:8000/ 網址4.備份與還原資料
Django 管理主控台
關於管理主控台• Django 內建管理主控台• 可快速開發管理主控台模組• 可⾃自定版型 • django-grappelli • django-admin-tools • Nexus
設定管理主控台• 需啟⽤用下列 App • django.contrib.admin• 需啟⽤用下列 URL 對應 • url(r’^admin/’, ...) • 注意:admin.autodiscover()
建⽴立管理者帳號• ⽅方法: • 在 manage.py syncdb 時 • 在 manage.py syncdb 後   • manage.py createsuperuser
practice1.啟⽤用 Django Admin 應⽤用程式2.建⽴立⼀一個管理者帳號3.登⼊入 Django Admin 管理主控台4.在 Flatpages 應⽤用程式中增加⼀一筆資料
Django 版型系統
設定版型⼦子系統• 重要參數: • TEMPLATE_LOADERS • TEMPLATE_DIRS
Context Variable<!DOCTYPE html><html>    <head>        <title>{{ flatpage.title }}</title>    </head><body>{{ flatpage.con...
Template Filter<!DOCTYPE html><html>    <head>        <title>{{ flatpage.title }}</title>    </head><body>{{ flatpage.cont...
Template Tag<!DOCTYPE html><html>    <head>        <title>{{ flatpage.title }}</title>    </head><body>{{ flatpage.content...
practice1.修改 TEMPLATE_DIRS 設定值2.在 <TEMPLATE_DIR> 中建⽴立 flatpages ⺫⽬目錄3.在 flatpages ⺫⽬目錄中建⽴立 default.html 檔案4.編輯 default.htm...
下⼀一步呢??
• 詳閱官網上的 Tutorial• 徹底研究 Django ORM 技術• 了解 Django URL confs• 熟悉 Template Filter / Tags 語法• 表單處理• 佈署 Django App 的技術
參考資料• https://docs.djangoproject.com/• http://www.djangobook.com/• https://www.djangopackages.com/• http://www.planetdjang...
Q&A
Django step0
Django step0
Upcoming SlideShare
Loading in...5
×

Django step0

724

Published on

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

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
724
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
25
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Django step0

  1. 1. Learning Django Step 0 Cd Chen The co-founder of passpass.cc / niceStudio.
  2. 2. 陳永昇 (Cd Chen) Ahttp://www.cdchen.idv.tw/ b學歷:國⽴立台中科技⼤大學 o經歷: u 聯成電腦講師 t 恆逸資訊講師現職: 乃師實業技術總監 passpass.cc 創辦⼈人證照: RHCE / LPIC / NCLP MCSA / MCSE OCPJP / OCPJWCD TCSE / NSPA
  3. 3. 出發之前
  4. 4. 我希望您...• 最好動⼿手玩⼀一玩• 有問題不要客氣• ⼿手機請關閉聲⾳音• ⽤用最舒服⾃自在的⽅方式• 請包容我的粗⼼心
  5. 5. 我假設您已經具備...• 知道什麼是 HTML• 最好具備開發 Web 應⽤用程式的經驗• 有辦法編輯⽂文字檔• 如果懂 Python 語法更棒
  6. 6. Python 基本觀念• ⾮非強制型別程式語⾔言• 強迫格式• 無 switch 語法• http://openhome.cc/Gossip/Python/
  7. 7. Django 簡介
  8. 8. 關於 Django• 基於 Python• 敏捷開發之網站開發框架• MVC 設計模式• 最新版本:1.5• http://djangoproject.com/
  9. 9. 簡史• 最早為 Lawrence, Kansas 新聞網站• 2005/06 以 BSD License 公開• 2008/06 成⽴立 Django Software Foundation
  10. 10. 重要案例• Pinterest• Instagram• Mozilla• The Washington Times• Public Broadcasting Service• passpass.cc
  11. 11. 優點• 內建 ORM• 簡易的版型語法• 廣泛的 3rd-Party App• 內建管理主控台• 內建基本的安全措施
  12. 12. 缺點• NoSQL??• 無內建 Connection-Pool• 版型系統速度較慢
  13. 13. 詞彙• Project / App• Model / View / Template
  14. 14. 建置 Django 環境
  15. 15. 準備動作• 需安裝下列元件: • Python 2 / Python 3 • pip / easy_install • virtualenv (⾮非必要,但強烈建議)
  16. 16. 安裝 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]$
  17. 17. 安裝 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]$
  18. 18. 建⽴立 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]$
  19. 19. Django 專案架構
  20. 20. 設定 Django 組態• 檔案:<PROJECT>/settings.py• 重要參數: • DATABASES • TIME_ZONE • TEMPLATE_DIRS • INSTALLED_APPS
  21. 21. 定義 URL 組態• 檔案:<PROJECT>/urls.py• 定義 URL 與對應的 View• Ref: https://docs.djangoproject.com/en/1.5/ topics/http/urls/
  22. 22. practice1.建⽴立⼀一個名為 ksdg 的 Django 專案2.將資料庫設定為 sqlite3 •名稱:sqlite3.db3.加⼊入或啟⽤用下列 App • django.contrib.sites •django.contrib.flatpages4.加⼊入下列 URL 對應 url(‘^pages/’, include(‘django.contrib.flatpages.urls’))
  23. 23. Django 的開發環境
  24. 24. manage.py• Django 專案環境的管理⼯工具• 可⽤用來 • 管理資料庫 • 啟動開發伺服器 • 備份、還原資料 • ...
  25. 25. 管理資料庫• 建⽴立資料表: manage.py syncdb• inspect: manage.py inspectdb• 產⽣生 SQL Script: • sql / sqlall / sqlclear / sqlcustom / sqlfulsh / sqlindexes / ...
  26. 26. 啟動開發伺服器manage.py runserver [OPTIONS][[ADDR:]PORT]• 預設:127.0.0.1:8000• 優點:會⾃自動載⼊入修改的程式碼• 限制:同時僅允許⼀一個連線
  27. 27. 備份與還原資料• 備份: manage.py dumpdata [APP [MODULE]]... • 可配合 -a 備份所有模組 • 建議加上 -n 參數• 還原: manage.py loaddata FILES...
  28. 28. practice1.建⽴立 ksdg 專案的資料庫2.啟動開發伺服器3.開啟 http://localhost:8000/ 網址4.備份與還原資料
  29. 29. Django 管理主控台
  30. 30. 關於管理主控台• Django 內建管理主控台• 可快速開發管理主控台模組• 可⾃自定版型 • django-grappelli • django-admin-tools • Nexus
  31. 31. 設定管理主控台• 需啟⽤用下列 App • django.contrib.admin• 需啟⽤用下列 URL 對應 • url(r’^admin/’, ...) • 注意:admin.autodiscover()
  32. 32. 建⽴立管理者帳號• ⽅方法: • 在 manage.py syncdb 時 • 在 manage.py syncdb 後 • manage.py createsuperuser
  33. 33. practice1.啟⽤用 Django Admin 應⽤用程式2.建⽴立⼀一個管理者帳號3.登⼊入 Django Admin 管理主控台4.在 Flatpages 應⽤用程式中增加⼀一筆資料
  34. 34. Django 版型系統
  35. 35. 設定版型⼦子系統• 重要參數: • TEMPLATE_LOADERS • TEMPLATE_DIRS
  36. 36. Context Variable<!DOCTYPE html><html> <head> <title>{{ flatpage.title }}</title> </head><body>{{ flatpage.content }}</body></html> <TEMPLATE_DIR>/flatpages/default.html
  37. 37. Template Filter<!DOCTYPE html><html> <head> <title>{{ flatpage.title }}</title> </head><body>{{ flatpage.content|truncatewords_html:3 }}</body></html> <TEMPLATE_DIR>/flatpages/default.html
  38. 38. 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
  39. 39. practice1.修改 TEMPLATE_DIRS 設定值2.在 <TEMPLATE_DIR> 中建⽴立 flatpages ⺫⽬目錄3.在 flatpages ⺫⽬目錄中建⽴立 default.html 檔案4.編輯 default.html5.開啟 http://localhost:8000/pages/ 網址
  40. 40. 下⼀一步呢??
  41. 41. • 詳閱官網上的 Tutorial• 徹底研究 Django ORM 技術• 了解 Django URL confs• 熟悉 Template Filter / Tags 語法• 表單處理• 佈署 Django App 的技術
  42. 42. 參考資料• https://docs.djangoproject.com/• http://www.djangobook.com/• https://www.djangopackages.com/• http://www.planetdjango.org/
  43. 43. Q&A
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×