国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python的Django框架下管理站點的基本方法

2019-11-25 17:10:27
字體:
來源:轉載
供稿:網友

對于某一類網站, 管理界面 是基礎設施中非常重要的一部分。 這是以網頁和有限的可信任管理者為基礎的界面,它可以讓你添加,編輯和刪除網站內容。 一些常見的例子: 你可以用這個界面發布博客,后臺的網站管理者用它來潤色讀者提交的內容,你的客戶用你給他們建立的界面工具更新新聞并發布在網站上,這些都是使用管理界面的例子。

但是管理界面有一問題: 創建它太繁瑣。 當你開發對公眾的功能時,網頁開發是有趣的,但是創建管理界面通常是千篇一律的。 你必須認證用戶,顯示并管理表格,驗證輸入的有效性諸如此類。 這很繁瑣而且是重復勞動。

Django 在對這些繁瑣和重復的工作進行了哪些改進? 它用不能再少的代碼為你做了所有的一切。 Django 中創建管理界面已經不是問題。

這一章是關于 Django 的自動管理界面。 這個特性是這樣起作用的: 它讀取你模式中的元數據,然后提供給你一個強大而且可以使用的界面,網站管理者可以用它立即工作。

請注意我們建議你讀這章,即使你不打算用admin。因為我們將介紹一些概念,這些概念可以應用到Django的所有方面,而不僅僅是admin
django.contrib 包

Django自動管理工具是django.contrib的一部分。django.contrib是一套龐大的功能集,它是Django基本代碼的組成部分,Django框架就是由眾多包含附加組件(add-on)的基本代碼構成的。 你可以把django.contrib看作是可選的Python標準庫或普遍模式的實際實現。 它們與Django捆綁在一起,這樣你在開發中就不用“重復發明輪子”了。

管理工具是本書講述django.contrib的第一個部分。從技術層面上講,它被稱作django.contrib.admin。django.contrib中其它可用的特性,如用戶鑒別系統(django.contrib.auth)、支持匿名會話(django.contrib.sessioins)以及用戶評注系統(django.contrib.comments)。這些,我們將在第十六章詳細討論。在成為一個Django專家以前,你將會知道更多django.contrib的特性。 目前,你只需要知道Django自帶很多優秀的附加組件,它們都存在于django.contrib包里。
激活管理界面

Django管理站點完全是可選擇的,因為僅僅某些特殊類型的站點才需要這些功能。 這意味著你需要在你的項目中花費幾個步驟去激活它。

第一步,對你的settings文件做如下這些改變:

    將'django.contrib.admin'加入setting的INSTALLED_APPS配置中 (INSTALLED_APPS中的配置順序是沒有關系的, 但是我們喜歡保持一定順序以方便人來閱讀)

    保證INSTALLED_APPS中包含'django.contrib.auth','django.contrib.contenttypes'和'django.contrib.sessions',Django的管理工具需要這3個包。 (如果你跟隨本文制作mysite項目的話,那么請注意我們在第五章的時候把這三項INSTALLED_APPS條目注釋了。現在,請把注釋取消。)

    確保MIDDLEWARE_CLASSES 包含'django.middleware.common.CommonMiddleware' 、'django.contrib.sessions.middleware.SessionMiddleware' 和'django.contrib.auth.middleware.AuthenticationMiddleware' 。(再次提醒,如果有跟著做mysite的話,請把在第五章做的注釋取消。)

運行 python manage.py syncdb 。這一步將生成管理界面使用的額外數據庫表。 當你把'django.contrib.auth'加進INSTALLED_APPS后,第一次運行syncdb命令時, 系統會請你創建一個超級用戶。 如果你不這么作,你需要運行python manage.py createsuperuser來另外創建一個admin的用戶帳號,否則你將不能登入admin (提醒一句: 只有當INSTALLED_APPS包含'django.contrib.auth'時,python manage.py createsuperuser這個命令才可用.)

第三,將admin訪問配置在URLconf(記住,在urls.py中). 默認情況下,命令django-admin.py startproject生成的文件urls.py是將Django admin的路徑注釋掉的,你所要做的就是取消注釋。 請注意,以下內容是必須確保存在的:

# Include these import statements...from django.contrib import adminadmin.autodiscover()# And include this URLpattern...urlpatterns = patterns('', # ... (r'^admin/', include(admin.site.urls)), # ...)

當這一切都配置好后,現在你將發現Django管理工具可以運行了。 啟動開發服務器(如前:`` python manage.py runserver`` ),然后在瀏覽器中訪問:http://127.0.0.1:8000/admin/

將你的Models加入到Admin管理中

有一個關鍵步驟我們還沒做。 讓我們將自己的模塊加入管理工具中,這樣我們就能夠通過這個漂亮的界面添加、修改和刪除數據庫中的對象了。
在其中,我們定義了三個模塊: Publisher 、 Author 和 Book 。

在`` books`` 目錄下(`` mysite/books`` ),創建一個文件:`` admin.py`` ,然后輸入以下代碼:

from django.contrib import adminfrom mysite.books.models import Publisher, Author, Bookadmin.site.register(Publisher)admin.site.register(Author)admin.site.register(Book)

這些代碼通知管理工具為這些模塊逐一提供界面。

完成后,打開頁面 `` http://127.0.0.1:8000/admin/`` ,你會看到一個Books區域,其中包含Authors、Books和Publishers。  (你可能需要先停止,然后再啟動服務(`` runserver`` ),才能使其生效。)

現在你擁有一個功能完整的管理界面來管理這三個模塊了。 很簡單吧!

花點時間添加和修改記錄,以填充數據庫。 如果你跟著第五章的例子一起創建Publisher對象的話(并且沒有刪除),你會在列表中看到那些記錄。

這里需要提到的一個特性是,管理工具處理外鍵和多對多關系(這兩種關系可以在`` Book`` 模塊中找到)的方法。 作為提醒,這里有個`` Book`` 模塊的例子:

class Book(models.Model):  title = models.CharField(max_length=100)  authors = models.ManyToManyField(Author)  publisher = models.ForeignKey(Publisher)  publication_date = models.DateField()  def __unicode__(self):    return self.title

在Add book頁面中(`` http://127.0.0.1:8000/admin/books/book/add/`` ),`` 外鍵`` publisher用一個選擇框顯示,`` 多對多`` 字段author用一個多選框顯示。 點擊兩個字段后面的綠色加號,可以讓你添加相關的記錄。 舉個例子,如果你點擊Publisher后面的加號,你將會得到一個彈出窗口來添加一個publisher。 當你在那個窗口中成功創建了一個publisher后,Add book表單會自動把它更新到字段上去 花巧.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 会昌县| 文登市| 司法| 青岛市| 海伦市| 盖州市| 阳江市| 安康市| 松溪县| 汕尾市| 兴国县| 海兴县| 海伦市| 启东市| 闸北区| 青海省| 宜丰县| 河津市| 九寨沟县| 汶上县| 平遥县| 民权县| 韩城市| 象山县| 丰顺县| 遵义市| 新余市| 偏关县| 电白县| 棋牌| 新乐市| 洛扎县| 大足县| 泰来县| 德安县| 志丹县| 怀来县| 天祝| 元阳县| 墨脱县| 荆门市|