欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2015年07月17日 11:56:06   投稿:goldensun  
這篇文章主要介紹了Python的Django框架下管理站點的基本方法,需是Django站點部署的基礎,要的朋友可以參考下

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

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

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

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

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

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

管理工具是本書講述django.contrib的第一個部分。從技術層面上講,它被稱作django.contrib.admin。django.contrib中其它可用的特性,如用戶鑒別系統(tǒng)(django.contrib.auth)、支持匿名會話(django.contrib.sessioins)以及用戶評注系統(tǒng)(django.contrib.comments)。這些,我們將在第十六章詳細討論。在成為一個Django專家以前,你將會知道更多django.contrib的特性。 目前,你只需要知道Django自帶很多優(yōu)秀的附加組件,它們都存在于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條目注釋了?,F(xiàn)在,請把注釋取消。)

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

運行 python manage.py syncdb 。這一步將生成管理界面使用的額外數(shù)據(jù)庫表。 當你把'django.contrib.auth'加進INSTALLED_APPS后,第一次運行syncdb命令時, 系統(tǒng)會請你創(chuàng)建一個超級用戶。 如果你不這么作,你需要運行python manage.py createsuperuser來另外創(chuàng)建一個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 admin
admin.autodiscover()

# And include this URLpattern...
urlpatterns = patterns('',
 # ...
 (r'^admin/', include(admin.site.urls)),
 # ...
)

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

將你的Models加入到Admin管理中

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

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

from django.contrib import admin
from mysite.books.models import Publisher, Author, Book

admin.site.register(Publisher)
admin.site.register(Author)
admin.site.register(Book)

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

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

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

花點時間添加和修改記錄,以填充數(shù)據(jù)庫。 如果你跟著第五章的例子一起創(chuàng)建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。 當你在那個窗口中成功創(chuàng)建了一個publisher后,Add book表單會自動把它更新到字段上去 花巧.

相關文章

  • python?使用ctypes調用C/C++?dll詳情

    python?使用ctypes調用C/C++?dll詳情

    這篇文章主要介紹了python?使用ctypes調用C/C++?dll詳情,文章首先通過導入ctypes模塊,加載C/C++?dll到python進程空間展開主題相關內容,需要的小伙伴可以參考一下
    2022-04-04
  • Pycharm和Idea支持的vim插件的方法

    Pycharm和Idea支持的vim插件的方法

    這篇文章主要介紹了Pycharm和Idea支持的vim插件的相關知識,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 解決Django中多條件查詢的問題

    解決Django中多條件查詢的問題

    今天小編就為大家分享一篇解決Django中多條件查詢的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 如何使用python爬蟲爬取要登陸的網站

    如何使用python爬蟲爬取要登陸的網站

    這篇文章主要介紹了如何使用python爬蟲爬取要登陸的網站,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • 基于Python實現(xiàn)通過微信搜索功能查看誰把你刪除了

    基于Python實現(xiàn)通過微信搜索功能查看誰把你刪除了

    這篇文章主要介紹了基于Python實現(xiàn)微信搜索查看誰把你刪除了的相關資料,需要的朋友可以參考下
    2016-01-01
  • pycharm下載包的時候出現(xiàn) no information available的解決

    pycharm下載包的時候出現(xiàn) no information available的解決

    這篇文章主要介紹了pycharm下載包的時候出現(xiàn) no information available的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Pycharm同步遠程服務器調試的方法步驟

    Pycharm同步遠程服務器調試的方法步驟

    這篇文章主要介紹了Pycharm同步遠程服務器調試,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 使用python切片實現(xiàn)二維數(shù)組復制示例

    使用python切片實現(xiàn)二維數(shù)組復制示例

    今天小編就為大家分享一篇使用python切片實現(xiàn)二維數(shù)組復制示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 將本地Python項目打包成docker鏡像上傳到服務器并在docker中運行

    將本地Python項目打包成docker鏡像上傳到服務器并在docker中運行

    Docker是一個開源項目,為開發(fā)人員和系統(tǒng)管理員提供了一個開放平臺,可以將應用程序構建、打包為一個輕量級容器,并在任何地方運行,這篇文章主要給大家介紹了關于將本地Python項目打包成docker鏡像上傳到服務器并在docker中運行的相關資料,需要的朋友可以參考下
    2023-12-12
  • python字典嵌套字典的情況下找到某個key的value詳解

    python字典嵌套字典的情況下找到某個key的value詳解

    這篇文章主要介紹了python字典嵌套字典的情況下找到某個key的value詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07

最新評論