简介
虽然django的admin漂亮的实现了CRUD,不过在有时候admin并不是这么好用。然后开始进行手写CRUD,接着发现自己又陷入了重复操作中。相比而言Ruby自动生成的添加删除功能就好不少,你生成的基础框架是可以扩展的。
为了减少手动书写CRUD的工作量,我写了一个扩展的startapp command。使用这个命令会自动生成 list/new/edit 的操作和html文件(这样修改起来就方便多了)。
使用说明
如需要在其他工程使用该命令,只需要将项目中的django_extensions文件夹复制到其他工程的app目录,并在settings.py里把django_extensions添加到app列表里。该扩展命令为create_app,使用方法和django官方的startapp一致(如:manage.py create_app blog)。
命令演示
为了方便演示,该扩展命令包含了一个演示工程(hidjango)。下面的步骤是windows平台(因为用了几个bat)。
- 运行\hidjango\scripts\create_app.bat。根据提示输入app的名称,如blog。
- 打开\hidjango\settings.py,在app列表里添加 hidjango.blog 。
- 运行\hidjango\scripts\syncdb.bat,初始化数据库。
- 修改\hidjango\urls.py,添加app的映射 (r’^’, include(‘hidjango.blog.urls’)), 。
- 运行\hidjango\scripts\runserver.bat启动开发服务器。
- 在浏览器输入http://127.0.0.1:7000/访问页面,并可以实现完整的添加删除操作。
注:
- command的py代码大部分都是从django-command-extensions(http://code.google.com/p/django-command-extensions)里复制过来的,我只做了少部分的修改。
- 该命令还比较简单,还有很多可以扩展的地方。比如app_name不一定和model_name相同等。
模板文件预览:
/django_extensions/conf/app_template/ |~templates/ | `~{{ app_name }}/ | |-base.html | |-edit.html | |-list.html | `-new.html |~templatetags/ | `-__init__.py |-__init__.py |-admin.py |-forms.py |-models.py |-tests.py |-urls.py `-views.py