欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

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

系統 1614 0

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

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

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 admin
admin.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 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區域,其中包含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表單會自動把它更新到字段上去 花巧.


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 大学生a级毛片免费视频 | 久色激情 | 激情五月色播 | 精品的一区二区三区 | 日日摸夜夜添夜夜添破第一 | 人人人人干 | free-porn-ok.com| 成人免费xxxxx在线观看 | 草草视频在线观看 | 精品视频导航 | 久久综合色播 | 草久久久| 一级毛片大全 | 久久夜夜操妹子 | 国产在线综合网 | 国产999精品久久久久久 | 国产精品久久久久久影视 | 国产成人精品美女在线 | 一区高清 | 欧美一级久久久久久久大片 | 中文字幕成人乱码在线电影 | 国产成人啪精品视频免费网站软件 | 2021中文字幕亚洲精品 | 亚洲www啪成人一区二区麻豆 | www.一区 | 免费视频大片在线观看 | 成年人福利 | 99热99色 | 久久久久久久国产精品影院 | 欧美激情第二页 | 国产精品2020观看久久 | 午夜影院恐怖电影免费看 | 看全色黄大色黄大片爽一次 | 免费精品一区二区三区在线观看 | 国产精彩视频 | 久久精品2 | 日韩视频在线观看免费 | 夜夜爽网站 | 日本黄视色视频在线观看 | 国产福利网| japanese末成年free |