http://orzpoint.com/django-course-for-frontend/html
特別說明一下,網上有數不勝數的django好教程,包括開發環境和各類軟件安裝,都很詳細,本篇僅僅寫給特定的人羣用於快速地像 體驗django開發網站的體驗,而且其中文字確定有諸多不合理和不夠正確的地方,其實說快速體驗也是比較滑稽的,由於就算是你只在window下開發的 話也會與遇到諸如要配置不少環境變量之類的問題。
java
簡單的介紹
Django是使用python構建網站的MVC框架,涵蓋了web展現邏輯處理,數據模型處理,視圖顯示控制等多方面的處理,較有特點的是Django自帶了後臺管理功能。python
使用Django來開發會涉及到不限於如下幾個方面的事情:web
- 安裝合適穩定的python版本以及與之相對應Django特定版本,以前在window7 64位下開發出現各類問題,建議在32位系統下開發,(Django等第三方庫的安裝由於python是跨平臺的,因此在各類系統下都是相似的,都是在命 令行下輸入python setup.py install)
- 選擇開發工具,我使用的是aptana,在上面安裝pyDev插件(而且配置好其中相似「環境變量」之類的參數,大概就是python安裝在哪裏),教程處處都是,須要注意的是debug項目時有一些runserver的參數須要配置,好比web應用端
- 選擇須要操做的數據庫,而後安裝與之相對應的python「適配器」(相似java中操做oracle須要特定的三方庫),完了須要在項目的settings.py中添加這些配置
- 建立項目(教程不少)以後aptana會自動生成一些符合Django項目特徵的文件,好比上面提到的settings.py,相似的還有urls.py(使用配置應用層url跳轉規則)
開始體驗項目以前能夠先準備一些參考的資料,不建議先看什麼語法指南(指的是相似Dive into python之類的語言教程),由於有必定的編程基礎加上編輯器的出錯提示你很快就能適應和理解python的基礎語法,待到須要使用到相似「數據類型」 之類的對象時再去翻閱語法手冊以免低級錯誤。ajax
開發準備
這裏推薦一個不錯的參考,有人翻譯了www.djangobook.com的全文(搜一下便可看到,已經有chm本地版),裏面會介紹如何安裝Django,創建數據庫,開發用的web服務器。數據庫
說一下幾個概念:django
- Django做爲一個「高級python web框架」,爲你提供了開發一個網站須要的大概99%的功能,好比怎麼渲染HTML,怎麼配置URL映射,怎麼分離邏輯和顯示,怎麼複用,怎麼寫 ajax(jsonp),生成文件(CVS、PDF……)等等,因此基本上不比擔憂哪些功能你沒辦法實現。
- python自己語法簡介,加上Django爲那些須要作網站的人作了不少繁雜的事情,所以你若是有一些有幫助的經驗半天足夠作出一個支持增刪改查的DEMO站點。
- 文中提到的所謂Django項目是指在普通的web項目中,在運行Django的項目構建命令以後生成特定特徵的目錄和文件,相似的命令還有不少,好比經過模型直接建立關聯數據表。
- 使用Django以後,全部的頁面都是把數據塞到一個指定好的頁面模板,二者配合輸出的,因此你還須要瞭解一下模板語言,大致上和python本 身有點像(包括條件判斷、循環等),模板之間還有繼承關鍵,因此整個網站也許只有一個框架html,而後裏面各個佈局下的模塊有分別對應的模塊來填充。
關於Django中MVC概念在項目中的比較實體化的對應,個人理解可能比較膚淺,以下:
M對應models.py,V對應views.py,C就是urls.py。編程
視圖層示例
作一個網頁的幾個步驟:json
- 添加一個「Django module「到項目中,aptana中很簡單,只要右鍵項目名稱-> Django -> Create Application,Django會自動在項目中生成一些文件,其中就包含了下面幾個步驟中必須的文件。
- 在urls.py中配置好這個網頁但願經過哪一個地址訪問,並指明這個地址是由哪一個視圖生成的(即這個視圖的名稱,位於views.py中)
- #訪問xxx.com/hello的時候使用show_hello這個視圖函數來生成網頁
- (r'hello^$', 'show_hello’)
- 在views.py中編寫這個視圖的業務邏輯,好比你要輸出一個「hello world」
- def show_hello(request):
- #這裏寫你須要發送到這個模板的變量
- vars = {
- ‘name‘ : request.GET.get(‘name’)
- }
- #這裏的hello.html就是一個靜態的html文件(俗稱模板)
- return render_to_response(‘hello.html’,vars,
- context_instance=RequestContext(request))
- 編寫hello.html:
- 在aptana中配置debug環境,這些配置信息比較難查,這裏直接寫出來:<>
- 新建一個python run(debug)配置,在Main tab下選擇要debug的項目,Main Module裏選擇項目中的manage.py
- 切換到Argument tab下,在Program arguments裏,輸入runserver –noreload 8002,其中8002是端口,讓然還有其餘參數能夠添加,具體看這裏:https://docs.Djangoproject.com/en/dev/ref/Django-admin/
- 配置完成後點擊apply,再點擊Debug,這時候能夠看到console裏輸出幾行成功提示,若是失敗的話會有失敗信息而後google之解決掉。這時候訪問console給出的ip和端口,能夠看到一行「It worked「,表示你的Django運行正常了。
- 最後訪問你urls中配置好的地址,正常的話就會在頁面上顯示hello world ****.
至此一個簡單的DEMO完成,之後須要瞭解的還有數據庫相關的操做。服務器
模型層
上面建立的模塊中還有一個models.py,這裏就是存放數據模型的,一個簡單的示例:
- class Person (models.Model):
- ### 這段看起來有點像數據庫字段說明混合表單字段類型的代碼,告訴Django你的這個模型中各類屬性字段的類型,若是用到表單中的話但願用什麼表單組件來展現,而且這些組件有哪些屬性
- name = models.CharFiled(max_length=255)
- def __unicode__(self):
- return self.name
建立完這個文件,便可在項目中再次右鍵,選擇Django -> Sync DB(效果至關於在命令行中輸入:python manage.py syncdb),檢查當前模型文件和數據庫之間是否同步,若是有沒則建立表單等操做。若是沒有其餘報錯,運行完這個以後就會在數據庫中看到與這個模型對應 的數據表,而後你就能夠在視圖層中操做這個模型,示例:
-
- person = Person.objects.get(id=’21314’)
- person.name = ‘rename’
- person.save()
開啓admin
只要在項目模塊中添加admin.py便可開啓,而後在這個文件中添加你須要在後臺管理的模型,好比:
- from Django.contrib import admin
- from gallery.models import
- admin.site.register(Person)
其餘有可能牽扯到的內容,關於用戶驗證、session、cookie的操做,不經過模板生成http響應等內容,請參考上文提到的djangobook手冊。