Django REST Framework中用于实现HTML JSON Forms规范的实现。
项目描述
html-json-forms
为使用 Django REST Framework 实现了 HTML JSON Form 规范。从 wq.db 中提取以供通用使用。
HTML JSON Forms使用数组风格的命名约定,这使得可以使用常规HTML字段表示复杂嵌套的JSON对象。想法是客户端应用程序(如 wq.app)以及最终浏览器可以解析这些字段并将结构化JSON提交到服务器。为了与旧客户端保持向后兼容,规范建议在服务器上实现回退解析器,以确保旧客户端可以使用传统方法提交表单。这个Python包是该算法的实现。
<!-- Input -->
<form>
<input name="items[0][name]" value="Example">
<input name="items[0][count]" value="5">
</form>
// Output
{
"items": [
{
"name": "Example",
"count": "5"
}
]
}
请注意,HTML JSON Form规范从未最终确定。该实现仍然可以作为通过传统HTML表单表示结构化数据的一种正式方式。
用法
html-json-forms
通过PyPI提供
pip3 install html-json-forms
功能性
from html_json_forms import parse_json_form
parse_json_form({
'items[0][name]': "Example",
'items[0][count]': "5",
})
DRF集成
要启用Django REST Framework中的HTML JSON Form解析,继承 JSONFormSerializer
from rest_framework import serializers
from html_json_forms.serializers import JSONFormSerializer
from .models import Parent, Child
class ChildSerializer(serializers.ModelSerializer):
class Meta:
model = Child
class ParentSerializer(JSONFormSerializer, serializers.ModelSerializer):
children = ChildSerializer(many=True)
class Meta:
model = Parent
# Alternatively you can use the pre-mixed JSONFormModelSerializer:
# class ParentSerializer(JSONFormModelSerializer):
# ...
请注意,只有顶级序列化器需要拥有 JSONFormSerializer
混合;嵌套序列化器将“直接工作”,就像数据是通过JSON提交的一样。此外,请注意,此模块仅处理嵌套表单数据的处理;您仍需自行确定如何处理写入嵌套模型(除非您使用wq.db的模式模块,该模块默认包含可写入的嵌套序列化器)。
项目详情
关闭
html-json-forms-1.1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 16dc413dc858fcc53602ad509c1aef735534838e1bae888bf429e210a9c48f6b |
|
MD5 | e716fa5f535e9dbea9928b2bfec78729 |
|
BLAKE2b-256 | e8809b76801b26cdf549d49d9daa93ed5df069de3bd0cd3938a7780aa0741197 |
关闭
html_json_forms-1.1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 51e7e9088bc88e324027144ca25d8bcdd37da28f311a8436bfd88944138ed409 |
|
MD5 | d4193a754aabd4130e817776b8cbb429 |
|
BLAKE2b-256 | 83dd58fad0d2d018a4794b7b0f97d6a55f6da63d768e4ed905f94cb0a894679a |