天天看點

Django學習筆記(一)

一、Django介紹

  Django是一個開放源代碼的Web應用架構,由python編寫。采用了MVC的軟體設計模式,即模型M,視圖V和控制器C。它最初是被開發來用于管理勞倫斯出版集團放下的一些以新聞内容為主的網站的,即CMS(内容管理系統)軟體。并于2005年7月在BSD許可證下釋出。

  Django架構的核心元件有:

  1.用于建立模型的對象關系映射

  2.為最終天啟設計的完美管理界面

  3.一流量的URL設計

  4.設計者友好的模版語言

  5.緩存系統

二Django工作機制:

1.用manage.py runserver 啟動Django伺服器時就載入了在同一目錄下的settings .py。該檔案包含了項目中的配置資訊,如前面講的URLConf等,其中最重要的配置就是ROOT_URLCONF,它告訴Django哪個Python子產品應該用作本站的URLConf,預設的是urls .py

2.當通路url的時候,Django會根據ROOT_URLCONF的設定來裝載URLConf。

3.然後按順序逐個比對URLConf裡的URLpatterns。如果找到則會調用相關聯的視圖函數,并把HttpRequest對象作為第一個參數(通常是request)

4.最後該view函數負責傳回一個HttpResponse對象。

Django學習筆記(一)

三、Django下載下傳安裝

Django可以運作在Apache上,也可以運作在支援WSGI,FastCGI的伺服器上。支援多種資料庫,已經支援Postgresql,MySql, Sqlite3,Oracle。Google App Engine也支援Django的某些部分,國内支援的平台有(SAE)Sina App Engine,(BAE)百度應用引擎。

安裝很簡單,如下:

wget https://www.djangoproject.com/download/1.6.2/tarball/
tar xzvf Django-1.6.2.tar.gz
cd Django-1.6.2
python setup.py install      

四、使用Django

1、啟動項目

[root@CnDkItvssh2 bamboo]#django-admin.py  startproject  testproject

[root@CnDkItvssh2 bamboo]# tree

.

└── testproject

├── manage.py

└──testproject

├── __init__.py

├── settings.py

├── urls.py

└── wsgi.py

2 directories, 5 files

2、建立應用程式

[root@CnDkItvssh2 bamboo]# cd testproject/

[root@CnDkItvssh2 testproject]# ls

manage.py testproject

[root@CnDkItvssh2 testproject]# pythonmanage.py startapp testapp

[root@CnDkItvssh2 testproject]# cd testapp/

[root@CnDkItvssh2 testapp]# tree

├── admin.py

├── models.py

├── tests.py

└── views.py

0 directories, 5 files

為了使 Django 認識到新應用程式的存在,還需要向 settings.py 檔案中的 INSTALLED_APPS 添加一個條目。對于這個應用程式來說,必須添加字元串testapp

[root@CnDkItvssh2 testproject]# vimtestproject/settings.py
INSTALLED_APPS = (
   'django.contrib.admin',
'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'testapp',
)      

3、建立視圖

[root@CnDkItvssh2 testproject]# vimtestapp/views.py
from django.shortcuts import render
from django.http import HttpResponse
def index(req):
  return HttpResponse('<h1>Hello world!</h1>')      

4、配置urls.py

[root@CnDkItvssh2 testproject]# vimtestproject/urls.py

url(r'^testapp/index/$','testapp.views.index')

5、啟動Django

[root@CnDkItvssh2testproject]# python manage.py runserver 0.0.0.0:8002

Validating models...

0 errors found

March 11, 2014 - 07:18:50

Django version 1.6.2, using settings'testproject.settings'

Starting development server athttp://0.0.0.0:8002/

Quit the server with CONTROL-C.

6、測試通路