Django實戰(3):Django也可以有scaffold


rails有一個無用的”神奇“功能,叫做scaffold。能夠在model基礎上,自動生成CRUD的界面。

說它無用,是因為rails的開發者David說,scaffold”不是應用程序開發的目的。它只是在我們構建應用程序時提供支持。當你設計出產品的列表該如何工作時,你依賴於“支架”“生成器”產生創建,更新,和刪除的行為。然后在保留這個“動作”時你要替換由“生成器”生成的行為。有時候當你需要一個快速接口時,並且你並不在乎界面的丑陋,“支架”就足夠用了。不要指望scaffold能滿足你程序的所有需要"。
說它神奇,是因為在rails中你不清楚他是怎么實現的。只告訴你一句話:約定優先於配置。只要名字xxx,就會xxx。說得人雲里霧里,認為rails真是一個偉大的框架。

在Django的世界中沒有這種無用的東西。但是如果你一定要,可以很容易地創建這么一套東西。下面我們就在project中引入一個“插件”。前面說過,app可以在多個project之間很容易的復用,我們要引入的就是一個第三方的app,無需修改,只需要簡單配置即可使用。

這個app叫做django-groundwork 。它不實現具體的功能,而是擴展了manage.py 的命令,使得通過命令行可以生成一些代碼/文件。

下載django-groundwork的代碼:

$git clone https://github.com/madhusudancs/django-groundwork.git

$ls django-groundwork

AUTHORS           LICENSE           README.rst        django-groundwork

其中的django-groundwork文件夾復制到project文件夾,然后在settings.py中加入該app:

 

INSTALLED_APPS = (
    #'django.contrib.auth',
    #'django.contrib.contenttypes',
    #'django.contrib.sessions',
    #'django.contrib.sites',
    #'django.contrib.messages',
    #'django.contrib.staticfiles',
    
    # Uncomment the next line to enable the admin:
    # 'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
     'depot.depotapp',
    'django-groundwork',
)

 

即完成了安裝。(如果遇到了什么麻煩,也可以下載本文附帶的源代碼包

 

安裝后,使用$python manage.py help可以看到,列出的可用命令中多了一個groundwork。其語法是:

$python manage.py groundwork appname ModelName1 ModelName2

接下來使用這個app為Product生成scaffold:

$python manage.py groundwork depotapp Product,就會生成所謂的scaffold。 

此時運行開發服務器(python manage.py runserver),就可以訪問下面的地址:

http://localhost:8000/depotapp/product/list/  訪問Product列表,並鏈接到create,edit,view等界面。

 

可以下載本次迭代的源代碼:http://download.csdn.net/detail/thinkinside/4035662

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM