[Django]增强的创建app的命令

简介

下载地址

虽然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)。

  1. 运行\hidjango\scripts\create_app.bat。根据提示输入app的名称,如blog。
  2. 打开\hidjango\settings.py,在app列表里添加 hidjango.blog 。
  3. 运行\hidjango\scripts\syncdb.bat,初始化数据库。
  4. 修改\hidjango\urls.py,添加app的映射 (r’^’, include(‘hidjango.blog.urls’)),
  5. 运行\hidjango\scripts\runserver.bat启动开发服务器。
  6. 在浏览器输入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