django - Django rest-framework 创建一个没有模型的视图
问题描述
我对 Django rest-framework 很陌生,并试图渲染一个不基于模型的简单 JSON 视图。我无法弄清楚如何做到这一点,因为所有示例都涉及从模型类呈现 JSON。下面是我试图做的简单例子。
class CommentSerializer(serializers.Serializer):
email = serializers.EmailField()
content = serializers.CharField(max_length=200)
created = serializers.DateTimeField()
class Comment(object):
def __init__(self, email, content, created=None):
self.email = email
self.content = content
self.created = created or datetime.now()
def comment_view(request):
comment = Comment(email='leila@example.com', content='foo bar')
serializer = CommentSerializer(comment)
json = JSONRenderer().render(serializer.data)
return json
解决方案
你可以像这里一样使用它:
from rest_framework.decorators import api_view
from rest_framework.response import Response
@api_view()
def comment_view(request):
comment = Comment(email='leila@example.com', content='foo bar')
serializer = CommentSerializer(comment)
return Response(serializer.data)
最后别忘了把它放在urls.py
:
urlpatterns = [
path('comments/', comment_view, name='comment-view'),
]
推荐阅读
- scala - 如何将案例类 RDD 转换为 RDD[String]?
- python - Python Altair Vega图表不显示
- node.js - 如何在从 arangodb 的边缘集合中获取数据时添加过滤条件
- logging - Cloudwatch 日志配置:timestamp_format 匹配
- java - 日食Java;所有项目的包资源管理器中的红色警告都消失了;为什么?
- reactjs - 在 React 中向外部变量添加状态
- python - 包含重音符号的 Django 模型翻译字符串被忽略
- c# - 检测日期格式并将其转换为精确格式“yyyy-MM-dd”
- python - Asyncio 可下标问题
- php - 防止浏览器后退按钮在 Laravel 中注销后访问页面