使用yaml定义模型和字段,并使用视图、表单、模板等为django生成应用程序。
django_make_app的Python项目详细描述
简介
django make应用程序将从一个简单的yaml模式生成django应用程序的代码。这类似于manage.py startapp,但功能非常强大。
这将根据模型定义生成:
- 管理类和管理表单
- django rest framework视图集、序列化器和路由器配置
- django appconfig
- Django系统检查
- 窗体类
- 模型类
- 详细信息/删除/更新/创建/列出视图、URL和模板
- 管理命令示例
- 虚拟过滤器
- 信号和接收器文件
- TOdo测试
安装
支持的python版本有:2.7,3.4,3.5,3.6,pypy和pypy3。
pip install --upgrade django-make-app
由于yapf不兼容,不支持python3.3(请参阅:https://github.com/google/yapf#python-versions)。如果你在python上 3.3,可以将此包与选项django-make-app generate ... --no-optimize一起使用(这将跳过yapf)。
用法
如果要生成名为library的应用程序,请在项目根目录中创建文件app_schema.yaml,并定义模型:
apps:-name:library# all files will be generated into library/ directory (will be created)models:-User:# model name-name:char# model field "name" of type "char"-email:char# model field "email" of type "char"-Book:# another model-library:fk# model field "library" of type "foreign key" to "library"-Article# empty model without fields-name:my_another_awesome_appmodels:-City-Country
您还可以通过执行(或检查templates/example.yaml)来打印示例配置:
django-make-app write_config > app_schema.yaml
最后,要生成应用程序的源代码,请执行:
django-make-app generate library
将生成此结构:
LIBRARY | admin.py | api.py | apps.py | checks.py | forms.py | models.py | receivers.py | serializers.py | signals.py | urls.py | views.py | __init__.py | |---management | | __init__.py | | | \---commands | library_command.py | __init__.py | |---migrations | __init__.py | |---templates | \---web | book_delete.html | book_detail.html | book_form.html | book_list.html | article_delete.html | article_detail.html | article_form.html | article_list.html | user_delete.html | user_detail.html | user_form.html | user_list.html | |---templatetags | web_tags.py | __init__.py | \---tests factories.py test_book.py test_article.py test_user.py __init__.py
许可证
麻省理工学院许可证(MIT)
版权所有(c)2016–2017 Va_ek Dohnal
特此免费向任何获得 本软件和相关文档文件的副本 “软件”),无限制地处理软件,包括 但不限于使用、复制、修改、合并、发布, 分发、再授权和/或出售软件副本,以及 允许向其提供软件的人员这样做,但须遵守 以下条件:
上述版权公告及本许可公告须包括在内 在软件的所有副本或大部分中。
软件按“原样”提供,不作任何形式的保证 或默示的,包括但不限于 适销性、适合特定目的和不侵权。 在任何情况下,作者或版权持有人均不对任何 索赔、损害赔偿或其他责任,无论是在合同诉讼中, 侵权行为或其他,由 软件或软件中的使用或其他交易。