SlideShare a Scribd company logo
Learning Django
    Step 0

               Cd Chen
   The co-founder of passpass.cc / niceStudio.
陳永昇 (Cd Chen)               A
http://www.cdchen.idv.tw/   b
學歷:國⽴立台中科技⼤大學
                            o
經歷:                         u
 聯成電腦講師                     t
 恆逸資訊講師
現職:
 乃師實業技術總監
 passpass.cc 創辦⼈人
證照:
 RHCE / LPIC / NCLP
 MCSA / MCSE
 OCPJP / OCPJWCD
 TCSE / NSPA
出發之前
我希望您...
• 最好動⼿手玩⼀一玩
• 有問題不要客氣
• ⼿手機請關閉聲⾳音
• ⽤用最舒服⾃自在的⽅方式
• 請包容我的粗⼼心
我假設您已經具備...
• 知道什麼是 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 djangoenv
New python executable in djangoenv/bin/python2.7
Also creating executable in djangoenv/bin/python
Installing 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]$
安裝 Django
(djangoenv)[cdchen@devel djangoenv]$ pip install django
Downloading/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 775
Successfully installed django
Cleaning up...
(djangoenv)[cdchen@devel djangoenv]$
建⽴立 Django 專案
(djangoenv)[cdchen@devel   djangoenv]$ ls
bin include lib lib64
(djangoenv)[cdchen@devel   djangoenv]$ django-admin.py 
> startproject ksdg
(djangoenv)[cdchen@devel   djangoenv]$ ls
bin 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]$
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/
practice
1.建⽴立⼀一個名為 ksdg 的 Django 專案
2.將資料庫設定為 sqlite3
  •名稱:sqlite3.db
3.加⼊入或啟⽤用下列 App
  • django.contrib.sites
  •django.contrib.flatpages
4.加⼊入下列 URL 對應
     url(‘^pages/’,
        include(‘django.contrib.flatpages.urls’))
Django 的開發環境
manage.py
• Django 專案環境的管理⼯工具
• 可⽤用來
 • 管理資料庫
 • 啟動開發伺服器
 • 備份、還原資料
 • ...
管理資料庫
• 建⽴立資料表:
  manage.py syncdb
• inspect:
  manage.py inspectdb
• 產⽣生 SQL Script:
 • sql / sqlall / sqlclear / sqlcustom /
    sqlfulsh / sqlindexes / ...
啟動開發伺服器
manage.py runserver [OPTIONS]
[[ADDR:]PORT]
• 預設:127.0.0.1:8000
• 優點:會⾃自動載⼊入修改的程式碼
• 限制:同時僅允許⼀一個連線
備份與還原資料
• 備份:
 manage.py dumpdata [APP
 [MODULE]]...
 • 可配合 -a 備份所有模組
 • 建議加上 -n 參數
• 還原:
 manage.py loaddata FILES...
practice
1.建⽴立 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
Django step0
Django step0
practice
1.啟⽤用 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.content }}
</body>
</html>
          <TEMPLATE_DIR>/flatpages/default.html
Template Filter
<!DOCTYPE html>
<html>
    <head>
        <title>{{ flatpage.title }}</title>
    </head>
<body>
{{ flatpage.content|truncatewords_html:3 }}
</body>
</html>
          <TEMPLATE_DIR>/flatpages/default.html
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
practice
1.修改 TEMPLATE_DIRS 設定值
2.在 <TEMPLATE_DIR> 中建⽴立 flatpages ⺫⽬目錄
3.在 flatpages ⺫⽬目錄中建⽴立 default.html 檔案
4.編輯 default.html
5.開啟 http://localhost:8000/pages/ 網址
下⼀一步呢??
• 詳閱官網上的 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.planetdjango.org/
Q&A

More Related Content

PDF
Android vs e pub
PDF
Javascript autoload
PDF
Browser Object Model
PDF
JavaScript Code Quality
PPT
Maven – 项目管理利器
PDF
HTML 語法教學
PDF
面向未来的重构
PDF
多说沈振宇:插件思想及多说的开发实践
Android vs e pub
Javascript autoload
Browser Object Model
JavaScript Code Quality
Maven – 项目管理利器
HTML 語法教學
面向未来的重构
多说沈振宇:插件思想及多说的开发实践

What's hot (20)

PDF
更好的文件组织
PDF
CRUD 綜合應用
PPTX
浅析浏览器解析和渲染
PDF
開發工具與環境建置
PDF
一拍一产品背后的故事(React实战)
PPT
Web设计 4 锋利的j_query(进入企业级应用阶段)
PDF
不断归零的前端人生 - 2016 中国软件开发者大会
PDF
模块加载策略 - 2012 SDCC, 北京
PPTX
快速入坑 Node.js - 0613 SITCON 雲林定期聚
PDF
View 與 Blade 樣板引擎
PDF
advanced introduction to codeigniter
PDF
Node.js 入門 - 前端工程開發實務訓練
PDF
給你一個使用 Laravel 的理由
PDF
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
PDF
從改寫後台 jQuery 開始的 Vue.js 宣告式渲染
PDF
前端爆肝之旅+React上山前的小專案心得分享
PDF
webpack 入門
PDF
Phpconf 2011 introduction_to_codeigniter
PPTX
How to ASP.NET MVC4
PDF
工作坊總結
更好的文件组织
CRUD 綜合應用
浅析浏览器解析和渲染
開發工具與環境建置
一拍一产品背后的故事(React实战)
Web设计 4 锋利的j_query(进入企业级应用阶段)
不断归零的前端人生 - 2016 中国软件开发者大会
模块加载策略 - 2012 SDCC, 北京
快速入坑 Node.js - 0613 SITCON 雲林定期聚
View 與 Blade 樣板引擎
advanced introduction to codeigniter
Node.js 入門 - 前端工程開發實務訓練
給你一個使用 Laravel 的理由
[Modern Web 2016] 讓你的 PHP 開發流程再次潮起來
從改寫後台 jQuery 開始的 Vue.js 宣告式渲染
前端爆肝之旅+React上山前的小專案心得分享
webpack 入門
Phpconf 2011 introduction_to_codeigniter
How to ASP.NET MVC4
工作坊總結
Ad

Viewers also liked (20)

PDF
Inode block
PDF
Spring Data for KSDG 2012/09
KEY
淺談雲端運算
PDF
Pytables
PDF
Command line 初級寶典
PDF
Live Performance Effects
PPS
Xmas
PDF
真蝦意外接到的Case
PDF
Two scoops of Django - Deployment
PDF
Elasticsearch intro output
PPTX
Two scoops of django Introduction
PDF
AngularJS Sharing
PPTX
Gitlab
PDF
Working with the django admin
PDF
愛樂工程師
PDF
Django 實戰 - 自己的購物網站自己做
PDF
Integrating tornado and webpack
PDF
那些年,我用 Django Admin 接的案子
PDF
Learning django step 1
PDF
Django workshop homework 3
Inode block
Spring Data for KSDG 2012/09
淺談雲端運算
Pytables
Command line 初級寶典
Live Performance Effects
Xmas
真蝦意外接到的Case
Two scoops of Django - Deployment
Elasticsearch intro output
Two scoops of django Introduction
AngularJS Sharing
Gitlab
Working with the django admin
愛樂工程師
Django 實戰 - 自己的購物網站自己做
Integrating tornado and webpack
那些年,我用 Django Admin 接的案子
Learning django step 1
Django workshop homework 3
Ad

Similar to Django step0 (20)

PPT
Django入门
PPTX
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
PDF
Python 于 webgame 的应用
PDF
Django development
PDF
該怎麼樣(認真的)部署你的 Python Web 應用程式?
PDF
4. Go 工程化实践-0124-v2.pdf
PDF
Web development with zend framework
PDF
開發環境建置
PPTX
Drupal 版型設計 - 瞭解版型程式
PDF
Ready Programmer One
PDF
開發流程與工具介紹
PPTX
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
PDF
Introduction to MVC of CodeIgniter 2.1.x
PPTX
02.uliweb开发入门
PDF
Java Build Tool course in 2011
ODP
Clojure cnclojure-meetup
PPTX
02.python.开发最佳实践
PDF
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
PDF
20120516 axure rp prototype design outline
PDF
使用 Pytest 進行單元測試 (PyCon TW 2021)
Django入门
DevOpsDays Taipei 2018 - Puppet 古早味、新感受:改造老牌企業進入自動化時代
Python 于 webgame 的应用
Django development
該怎麼樣(認真的)部署你的 Python Web 應用程式?
4. Go 工程化实践-0124-v2.pdf
Web development with zend framework
開發環境建置
Drupal 版型設計 - 瞭解版型程式
Ready Programmer One
開發流程與工具介紹
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
Introduction to MVC of CodeIgniter 2.1.x
02.uliweb开发入门
Java Build Tool course in 2011
Clojure cnclojure-meetup
02.python.开发最佳实践
Continuous Delivery Workshop with Ansible x GitLab CI (5th)
20120516 axure rp prototype design outline
使用 Pytest 進行單元測試 (PyCon TW 2021)

Recently uploaded (20)

PPTX
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
PPTX
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
PPTX
3分钟读懂伦敦政治经济学院毕业证LSE毕业证学历认证
PPTX
3分钟读懂伦敦商学院毕业证LBS毕业证学历认证
PDF
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
PPTX
3分钟读懂贝尔法斯特女王大学毕业证QUB毕业证学历认证
PPTX
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
PPTX
3分钟读懂伦敦南岸大学毕业证LSBU毕业证学历认证
PPTX
模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板
PPTX
3分钟读懂索尔福德大学毕业证Salford毕业证学历认证
PPTX
ONU and OLT from Baudcom Jenny training PPT
PDF
黑客出手,分数我有!安全可靠的技术支持,让你的GPA瞬间提升,留学之路更加顺畅!【微信:viphuzhao】
PPTX
3分钟读懂福特汉姆大学毕业证Fordham毕业证学历认证
PPTX
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
PPTX
3分钟读懂曼彻斯特大学毕业证UoM毕业证学历认证
PPTX
3分钟读懂南威尔士大学毕业证UCB毕业证学历认证
PPTX
3分钟读懂圣安德鲁斯大学毕业证StAnd毕业证学历认证
PPTX
3分钟读懂曼彻斯特城市大学毕业证MMU毕业证学历认证
PPTX
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
PPTX
3分钟读懂肯塔基大学毕业证UK毕业证学历认证
3分钟读懂圭尔夫大学毕业证U of G毕业证学历认证
3分钟读懂滑铁卢大学毕业证Waterloo毕业证学历认证
3分钟读懂伦敦政治经济学院毕业证LSE毕业证学历认证
3分钟读懂伦敦商学院毕业证LBS毕业证学历认证
黑客技术,安全提分不是梦!我们采用最新的数据破解和隐藏技术,精准定位并修改你的成绩,同时采用深度隐藏技术确保你的操作不被发现。价格实惠,流程快速,事后无痕...
3分钟读懂贝尔法斯特女王大学毕业证QUB毕业证学历认证
3分钟读懂贵湖大学毕业证U of G毕业证学历认证
3分钟读懂伦敦南岸大学毕业证LSBU毕业证学历认证
模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板模板
3分钟读懂索尔福德大学毕业证Salford毕业证学历认证
ONU and OLT from Baudcom Jenny training PPT
黑客出手,分数我有!安全可靠的技术支持,让你的GPA瞬间提升,留学之路更加顺畅!【微信:viphuzhao】
3分钟读懂福特汉姆大学毕业证Fordham毕业证学历认证
3分钟读懂佩珀代因大学毕业证Pepperdine毕业证学历认证
3分钟读懂曼彻斯特大学毕业证UoM毕业证学历认证
3分钟读懂南威尔士大学毕业证UCB毕业证学历认证
3分钟读懂圣安德鲁斯大学毕业证StAnd毕业证学历认证
3分钟读懂曼彻斯特城市大学毕业证MMU毕业证学历认证
3分钟读懂加州大学欧文分校毕业证UCI毕业证学历认证
3分钟读懂肯塔基大学毕业证UK毕业证学历认证

Django step0