• 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等界面。

  • 相关阅读:
    [Todo]很不错的Java面试题类型整理,要看
    [Todo] Java并发编程学习
    自建一个Java Spring MVC项目
    [Todo] 乐观悲观锁,自旋互斥锁等等
    [Todo] Redis里面队列的两种模式,以及抢红包在Redis中的实现
    hdu 4704 同余定理+普通快速幂
    [置顶] ubuntu 和 win7 远程登陆 + vnc登陆
    mysql之触发器
    Jsoup API解析HTML中input标签
    IOS UITableView单条刷新,数据不刷新解决方案
  • 原文地址:https://www.cnblogs.com/wuxl360/p/5787768.html
走看看 - 开发者的网上家园