跳到主要內容

Django 安裝及實作筆記(一)

----

Django 的安裝及實作筆記: Django 是一個Python的mvc程式框架,可以大幅加速撰寫動態網頁流程,很酷喔!(註: 這跟攝影無關喔...寫給自己看的啦!)


1. 先下載Python,並安裝之。


2. 設定系統的PATH,增加指向Python的目錄(例:c:\Python2.6)。


3. 下載Django,解壓縮之後,打開『命令提示字元』視窗(命令列),並轉換到解壓縮後的目錄中,執行 setup.py install。Django 的程式碼會被複製到Python的目錄中。


4. 記得要把 django-admin.py 從 C:\(Python的目錄)\Scripts,copy 到Python的主目錄下,這樣在做下一步時,才不會找不到django-admin.py。


5. 接下來是增加一個site,開始產生網站程式。先在命令列中,轉移到欲存放網站程式碼的地方,假設是在 C:\Documents and Settings\Administrator\。接下來執行:


    django-admin.py startproject <網站名稱>。(例: Mytest)


    註:其實,可以打django-admin help,就可以了解所有的指令喔!


                        django-admin help <指令>,就可以看到該指令的說明。


6. 接下來,以此例為說明,會在 C:\Documents and Settings\Administrator\下出現 Mytest 目錄。此目錄下有四個檔案:


   
__init__.py
    manage.py
    settings.py
    urls.py


7. 在 setting.py 中編輯設定資料庫連線資料。


    DATABASE_ENGINE = 'sqlite3' (本例使用sqlite)     
    DATABASE_NAME = 'C:\Documents and Settings\Administrator\Mytest\sqlite.db' (本例使用sqlite,所以填入欲使檔案所在之位置及檔案名稱。)


8. cd Mytest


9. 執行 manage.py syncdb。Django 會先產生對應的資料庫檔案。


10. 接下來,新增一個應用程式:pools。


     manage.py startapps pools


     在 Mytest 目錄下,多了一個pools 的目錄。裡面多了三個檔案:


     __init__.py
     models.py
     views.py



11. 根據 Django Project 的文件中教學文章
Writing your first Django app, part 1 ~4』,現在要來建立model。一共有兩個model: Pool and Choice。編輯 model.py 如下:


   from django.db import models


   class Poll(models.Model):
       question = models.CharField(max_length=200)
       pub_date = models.DateTimeField('date published')

   class Choice(models.Model):
       poll = models.ForeignKey(Poll)
       choice = models.CharField(max_length=200)
       votes = models.IntegerField()


12. 啟動 models。編輯 settings.py。在INSTALLED_APPS下增加:'Mytest.pools'。


     INSTALLED_APPS = (
         'django.contrib.auth',
         'django.contrib.contenttypes',
         'django.contrib.sessions',
         'django.contrib.sites',
         'Mytest.polls' )


13. 執行 manage.py suncdb


14. 加入 admin 介面:


     a. 編輯 settings.py。在INSTALLED_APPS下增加:'django.contrib.admin'。


     INSTALLED_APPS = (
         'django.contrib.auth',
         'django.contrib.contenttypes',
         'django.contrib.sessions',
         'django.contrib.sites',
         'django.contrib.admin',
         'Mytest.polls' )


      b. 執行 manage.py suncdb


      c. 編輯 urls.py,將下列黑體字列的"#"拿掉。


        
from django.conf.urls.defaults import *

         # Uncomment the next two lines to enable the admin:
            from django.contrib import admin
            admin.autodiscover()

          urlpatterns = patterns('',
         # Example:
         # (r'^mysite/', include('mysite.foo.urls')),

         # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
         # to INSTALLED_APPS to enable admin documentation:
         # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

         # Uncomment the next line to enable the admin:
         (r'^admin/', include(admin.site.urls)),  )


15. 啟動管理介面。


     mamage.py runserver 


16.
打開瀏覽器,執行:http://127.0.0.1:8000/admin/,出現登錄畫面。第一步算是完成了。


    


17. 如果前面忘記建立superuser,可以用指令 manage.py createsuperuser 建立。


18. 登入"admin"之後,出現"Site administration" 的畫面。但只能對『Sites』、『Groups』、『Users』等基本資料做管理。這是最陽春的管理介面。



19. 不過,我們可以建立一個 admin.py 的檔案,增加下列程式碼,讓前面建立的"Polls" 可以被加入到管理介面,可直接用Django的管理介面來做增刪資料的動作。


from Mytest.polls.models import Poll
from django.contrib import admin

admin.site.register(Poll)


畫面結果:



 


20.依樣畫葫蘆,把 Choice 的表格也加入吧!


from Mytest.polls.models import Poll

from Mytest.polls.models import Choice

from django.contrib import admin



admin.site.register(Choice)

admin.site.register(Poll)


畫面:



21.按下 polls,再隨選或新增一個項目,可以看到下面的畫面(按下日期也有日曆畫面可以選擇喔,預設的畫面就已經如此完整了!):





22. 當然,我們可以做得再細一些,將 admin.py 新增或修改成下列的樣子:


from Mytest.polls.models import Poll

from Mytest.polls.models import Choice

from django.contrib import admin



class ChoiceInline(admin.TabularInline):

    model = Choice

    extra = 4

class PollAdmin(admin.ModelAdmin):

    fieldsets = [

          (None, {'fields':['question']}),

          ('Date information', {'fields':['pub_date']})

    ]


 
   inlines = [ChoiceInline]

    list_display = ('question', 'pub_date')

    list_filter = ['pub_date']

    search_fields = ['question']

    date_hierarchy = 'pub_date'





admin.site.register(Choice)

admin.site.register(Poll, PollAdmin)


下面的畫面,已經用紅框框把顯示效果和程式碼做一個連結:



 


若點選 Question 其中的一項,例如:"台北市民調2009-05-15",就會看到以下的畫面:




其實這樣已經可以增修刪這 Poll 及 Choice 的資料了,我們可以全部按照預設,一行code都不用寫,也可以寫幾行code就有這麼多變化,Django admin interface 真是很powerful 啊。


admin.py 程式碼裡面的API,在文件:The Django admin site 都有詳細的提到


待續.......................


 


留言

  1. 步驟19

    from Mytest.polls.models import Poll

    應該改為

    from Mytest.pools.models import Poll

    因為步驟10創建的app 是 pools

    回覆刪除
  2. 我想請問一下 我再第五步驟發生一些問題

    我輸入 django-admin.py startproject 

    這段程式要建置網頁時候

    他都會出現 讓我選擇一個工具才開啟

     請問我是哪邊發生問題

    回覆刪除
  3. 我一直都卡在無法建置網頁那邊

    我參考了很多網頁的教學步驟

    基本上 我都和其他人一樣

    但是一直都無法建置出 網頁

    真的好奇怪

    回覆刪除

張貼留言

這個網誌中的熱門文章

我從擲筊學到的事

擲筊的目的與功能 擲筊(跋桮)是道教信仰中一種祈求神靈意見的工具,我發現是一種非常有用的方法。擲筊不僅是作為人與神明之間溝通的一種工具,如能善加運用,更能讓神明指點與幫助信眾,發揮濟世救人的精神與目的。 擲筊的原則 一般會將擲筊斥為迷信,主要是因為只看到了擲筊本身的隨機性,認為擲筊所顯示的聖筊或陰筊,只是隨機出現的現象,並非神意,進而否定無形神明的存在。然而並非如此。因為: 無形的神明是存在的,而且神明可以控制筊杯。 擲筊有嚴謹的規則,並非依賴隨機而成的卦象。 就嚴謹的規則而言,請見(註一) 所列的書。我要在此強調,因為擲筊有嚴謹的規則,有邏輯的流程,所以問出來的答案才有意義。 寺廟的選擇 神明是住在寺廟裡的,所以要問事,請神明幫忙,最好是去寺廟裡問。 首先,我建議去問事的寺廟,有以下幾個原則: 1. 地方大廟 雖然廟越大,並不代表就越靈,但是該廟一定要在地方上是一座指標性的寺廟,這樣的話,至少有一定的水準在。 2. 以正神為主 所供奉的神明應以正神為主,如觀世音菩薩、天公廟、天上聖母、關聖帝君、玄天上帝等等。正神明道德、修正氣,也是我們處世為人效法的對象。 3. 百年歷史 廟有一定的歷史,代表著已經經過很長一段時間的考驗。 4. 有口碑、事蹟豐富 若是有很多事蹟,代表著該位神明神通廣大,很會辦事。 5. 香火鼎盛 很多人在拜的廟宇,當然該廟的神明遇到的案子數量就越多,種類也就越豐富,這代表該廟的神明處理事情有著非常豐富的經驗,對我們要問、要祈求的事情,想必也能駕輕就熟。    不建議 1. 香火不興盛、沒什麼人拜 這種寺廟有幾種可能,也許是正神已經不在了,或是廟方管理人道德有所虧欠,或不會經營,亦或是地處偏遠,交通不便。這種寺廟除非與你有特殊因緣,否則不建議。 2. 個人宮壇 像有些個人宮壇有詐騙的行為,所以必須看清楚,不要事情沒解決,反而被騙財,甚至騙色。 3. 陰廟 到陰廟許願祈求,通常是需要還願的,就是和鬼神交換條件,倘若願望達成卻忘記還願,恐怕會產生一些問題。所以建議去祭祀正神的廟參拜,因為正神無所求,不會因為你忘記還願而責怪甚至降禍於你。 入廟後參拜及擲筊的流程 通常遵循「 左青龍進,右白虎出 」的原則,由面對著廟的方向,右邊的門進入,中間的門是給神明出入的,所以信眾不得從此進出。 進廟之後,將供品及金紙置於供桌上,然後取香依照廟方所...

祖先遷葬的奇事

緣起 我們家祖先的墓一共有三個,一個是高祖母許劉員、曾祖父許求、曾祖母許潘烏甜合葬的墓。一個是祖父許財旺的墓。另一個是祖母許陳快的墓。 為何會想要遷葬? 一來是祖先的墓有點年久失修,祖父墓的墓碑甚至有反潮變色的現象,代表墳墓內部已經浸水。考量修墓的經費可能會很多,對於大家而言,可是一筆不小的經濟負擔。 二來是我們這一代的年紀漸漸的老了,下一代的子孫不見得會照顧這些祖先的墓。如此的話,對於祖先就有所虧欠了。必須得考慮一個一勞永逸的方案。 第三,是來自小弟 Jemic 的訊息,他說有來自祖先的一些訊息及徵兆,要我們子孫好好處理祖先墓的事。其經過也是滿奇特的,請參考 他的部落格 。

《私京都:單車徒步輕旅行,春櫻、夏綠、秋楓、冬雪,自遊自在!》

我耗時四個多月日以繼夜的寫作,收錄四百多張照片,達320頁,寫關於京都遊記的新書已經上市了。 書名是《私京都:單車徒步輕旅行,春櫻、夏綠、秋楓、冬雪,自遊自在!》 作者:      許朝益   出版社:    日日幸福    出版日期:2018/03/14 語言:      繁體中文 定價:      399元 ISBN:     9789869583862 博客來網路書店購書去! 內容簡介 鏡頭下的京都四季慢旅,療癒心靈的和風之美 悠遊穿梭這座古老優雅、充滿文化底蘊的城市,滿是感動!   京都身為千年古都,是歷史文化古蹟寶庫。17座寺院、神社及城堡,共同被聯合國教科文組織於1994年登錄為「古京都遺址」世界文化遺產。   京都更是自行車的天堂,街廓整齊不易迷路,道路平坦容易騎乘。帶著相機,騎著自行車,散步或是搭乘公車或電車,以自行車為主要交通工具,時而進行「途中下車」,輕鬆悠閒的暢遊京都大街小巷與各地景點、寺院,以自己的步調,尋找喜愛的地方,獵取美麗的鏡頭,享受美好感動。   本書320頁全彩,以京都春櫻、夏綠、秋楓、冬雪風情各異的四季為經,以路線景點的特色為緯,將京都魅力所在,排列組合成一套屬於個人獨特觀點、暢快淋漓的旅行方式,為京都愛好者提供另類經驗參考。   ◎以自在旅行方式,於春夏秋冬四季,體驗京都的點點滴滴,用細膩影像記錄京都之美,並以遊記的書寫方式,分享京都觀察及心得。   ◎可以自由組合自行車或徒步或加上電車等路線,創造出美學的、詩意的、禪意的、浪漫的、節慶的、季節的……探索屬於自己的京都旅程。   ◎全書每一條路線都是獨立,從任一季節、路線閱讀皆可,也可以依照春夏秋冬順序翻閱。   ◎拍攝櫻花、紅葉、神社攝影技巧和光線與構圖解說。以及在京都騎自行車的方式還有注意事項。