posts - 431,  comments - 344,  trackbacks - 0
          公告
           Don't Repeat Yourself
          座右銘:you can lose your money, you can spent all of it, and if you work hard you get it all back. But if you waste your time, you're never gonna get it back.
          公告本博客在此聲明部分文章為轉摘,只做資料收集使用。


          微信: szhourui
          QQ:109450684
          Email
          lsi.zhourui@gmail.com
          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          留言簿(15)

          隨筆分類(1019)

          文章分類(3)

          文章檔案(21)

          收藏夾

          Link

          好友博客

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 861069
          • 排名 - 44

          最新評論

          閱讀排行榜

          安裝平頁面應用程序必須按照下面的步驟:

          1.      添加'django.contrib.flatpages'INSTALLED_APPS設置。django.contrib.flatpages依賴于django.contrib.sites , 所以確保這兩個開發包都包括在``INSTALLED_APPS`` 設置中。

          2.      'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware'添加到MIDDLEWARE_CLASSES設置中。

          3.      運行manage.pysyncdb命令在數據庫中創建必需的兩個表。

          簡單頁面應用程序在數據庫中創建兩個表:django_flatpagedjango_flatpage_sitesdjango_flatpage只是將 URL 映射到到標題和一段文本內容。django_flatpage_sites是一個多對多表,用于關聯某個簡單頁面以及一個或多個站點。

          該應用所帶來的FlatPage模型在django/contrib/flatpages/models.py進行定義,如下所示:

          from django.db import models

          from django.contrib.sites.models import Site

          class FlatPage(models.Model):

              url = models.CharField(maxlength=100)

              title = models.CharField(maxlength=200)

              content = models.TextField()

              enable_comments = models.BooleanField()

              template_name = models.CharField(maxlength=70, blank=True)

              registration_required = models.BooleanField()

              sites = models.ManyToManyField(Site)

          讓我們逐項看看這些字段的含義:

          §                url : 該簡單頁面所處的 URL,不包括域名,但是包含前導斜杠 (例如/about/contact/ )

          §                title : 簡單頁面的標題。框架不對它作任何特殊處理。由你通過模板來顯示它。

          §                content : 簡單頁面的內容 ( HTML 頁面)。框架不會對它作任何特別處理。由你負責使用模板來顯示。

          §                enable_comments : 是否允許該簡單頁面使用注釋。框架不對此做任何特別處理。你可在模板中檢查該值并根據需要顯示注釋窗體。

          §                template_name : 用來解析該簡單頁面的模板名稱。這是一個可選項;如果未指定模板或該模板不存在,系統會退而使用默認模板flatpages/default.html

          §               registration_required : 是否注冊用戶才能查看此簡單頁面。該設置項集成了 Djangos 驗證/用戶框架,該框架將于第十二章詳述。

          §              sites : 該簡單頁面放置的站點。該項設置集成了 Django 多站點框架,該框架在本章的《多站點》一節中有所闡述。

          你可以通過 Django 超級管理界面或者 Django 數據庫 API 來創建平頁面。要了解更多內容,請查閱《添加、修改和刪除簡單頁面》一節。

          一旦簡單頁面創建完成,FlatpageFallbackMiddleware將完成(剩下)所有的工作。每當 Django 引發 404 錯誤,作為終極手段,該中間件將根據所請求的 URL 檢查平頁面數據庫。確切地說,它將使用所指定的 URL以及SITE_ID設置對應的站點 ID 查找一個簡單頁面。

          如果找到一個匹配項,它將載入該簡單頁面的模板(如果沒有指定的話,將使用默認模板flatpages/default.html)。同時,它把一個簡單的上下文變量—— flatpage(一個簡單頁面對象)傳遞給模板。在模板解析過程中,它實際用的是RequestContext

          如果FlatpageFallbackMiddleware沒有找到匹配項,該請求繼續如常處理。

          注意

          該中間件僅在發生 404 (頁面未找到)錯誤時被激活,而不會在 500 (服務器錯誤)或其他錯誤響應時被激活。還要注意的是必須考慮MIDDLEWARE_CLASSES的順序問題。通常,你可以把FlatpageFallbackMiddleware放在列表最后,因為它是一種終極手段。

          添加、修改和刪除簡單頁面

          可以用兩種方式增加、變更或刪除簡單頁面:

          通過超級管理界面

          如果已經激活了自動的 Django 超級管理界面,你將會在超級管理頁面的首頁看到有個 Flatpages 區域。你可以像編輯系統中其它對象那樣編輯簡單頁面。

          通過 Python API

          前面已經提到,簡單頁面表現為django/contrib/flatpages/models.py中的標準 Django 模型。因此,你可以通過 Django 數據庫 API 來存取簡單頁面對象,例如:

          >>> from django.contrib.flatpages.models import FlatPage

          >>> from django.contrib.sites.models import Site

          >>> fp = FlatPage(

          ...     url='/about/',

          ...     title='About',

          ...     content='<p>About this site...</p>',

          ...     enable_comments=False,

          ...     template_name='',

          ...     registration_required=False,

          ... )

          >>> fp.save()

          >>> fp.sites.add(Site.objects.get(id=1))

          >>> FlatPage.objects.get(url='/about/')

          <FlatPage: /about/ -- About>

          使用簡單頁面模板

          缺省情況下,系統使用模板flatpages/default.html來解析簡單頁面,但你也可以通過設定FlatPage對象的template_name字段來覆蓋特定簡單頁面的模板。

          你必須自己創建flatpages/default.html模板。只需要在模板目錄創建一個flatpages目錄,并把default.html文件置于其中。

          簡單頁面模板只接受有一個上下文變量—— flatpage,也就是該簡單頁面對象。

          以下是一個flatpages/default.html模板范例:

          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">

          <html>

          <head>

            <title>{{ flatpage.title }}</title>

          </head>

          <body>

            {{ flatpage.content }}

          </body>

          </html>

          posted on 2008-12-05 15:33 周銳 閱讀(645) 評論(0)  編輯  收藏 所屬分類: Python
          主站蜘蛛池模板: 太仆寺旗| 江源县| 长春市| 嘉鱼县| 遂平县| 保亭| 枣阳市| 磴口县| 政和县| 拉萨市| 乌兰察布市| 三江| 长春市| 安溪县| 沂南县| 包头市| 密云县| 长海县| 慈溪市| 陵川县| 兴安盟| 元江| 桃园市| 娄底市| 民权县| 辽阳县| 马边| 西峡县| 秦安县| 云梦县| 南投市| 大丰市| 白朗县| 中牟县| 武威市| 高尔夫| 景德镇市| 东兴市| 汉中市| 天津市| 昌图县|