Metadata-Version: 2.1
Name: a3dj
Version: 0.1.0
Summary: It is based on Django and can make development easier.
Home-page: https://gitee.com/three-kinds/a3dj
Author: three-kinds
Author-email: 3179158552@qq.com
License: Apache 2.0
Project-URL: Documentation, https://gitee.com/three-kinds/a3dj
Project-URL: Source, https://gitee.com/three-kinds/a3dj
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Framework :: Django
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE

# a3dj

基于django做了一些规则设定，让开发过程更简单

## 特点

1. 不用专门写注解或语法，就可以全量生成open api文档，包含各种异常返回
2. 非常方便写单元测试
3. 抛出一个异常就是一个异常响应；单元测试时甚至也可以在发出请求后去捕获这个异常
4. 请求时想用json用json、想用form-data用form-data

## 自问自答

### 1. 为什么用纯post的方式，不用restful？

* 如果项目只是纯sql数据对象的增删改查，用restful、GraphQL更合适
* 我经历的项目通常都比这个复杂一些，多种类型的数据库、不能简单抽象为资源的业务、需求还老变、对严谨性要求稍高等，让我使用restful时考虑怎样restful占用了很常时间
* 总的来说，我很快放弃了restful；后来又经历了带新人，甚至想让其他人也能看得懂代码，我的需要就变成了：适应快速变化、简单易懂
* 纯post的方式，也可以提供增删改查的基类便于快速实现增删改查；对于习惯了restful风格开发的前后端程序员来说，这个只会更简单

### 2. 为什么不使用或基于django-rest-framework？

* 它很复杂、上手需要花费较多时间进行系统的学习
* 不直观、不易懂，反而容易混淆，比如serializer

### 3. 为什么重新写form模块？

* django的form模块对于生成open api文档来说，太简陋了；对于平常使用（非admin）来说太重了
