我想创建一个API来接收csv文件,然后以json格式响应该文件。我如何在不使用模型和任何与数据库相关的东西的情况下实现这一点?我不想使用数据库,因为它假设csv文件每次都会有不同的结构这是我的第一个django项目,我已经看了很多教程,甚至我做了django网站上的第一个教程,但我不明白如何做这个任务没有数据库。谢谢!
jm81lzqq1#
既然你还没有尝试过任何东西对你自己这里是你可以怎么做第一个月
from rest_franework.generics import CreateAPIView class ReadCSVView(CreateAPIView): # permission_classes = [IsAuthenticated] serializer_class = ReadCSVSerializer queryset = '' def perform_create(self, serializer): file = serializer.validated_data['file'] decoded_file = file.read().decode() io_string = io.StringIO(decoded_file) reader = csv.reader(io_string) next(reader) # incase you want to skip first row else remove this return reader def create(self, request, *args, **kwargs): serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) final_data = [] for row in self.perform_create(serializer): if row[0]=="jack": #do your logic here final_data.append(row) return Response(final_data, status=status.HTTP_201_CREATED)
只需创建一个序列化程序来读取csv.serializers.py
serializers.py
from rest_framework import serializers class ReadCSVSerializer(serializers.Serializer): file = serializers.FileField()
现在转到您的urls.py并按以下方式调用视图类
urlpatterns = [ path("read-csv",views.ReadCSVView.as_view(),name="csv")]
我希望这能澄清你的疑虑
1条答案
按热度按时间jm81lzqq1#
既然你还没有尝试过任何东西对你自己这里是你可以怎么做
第一个月
只需创建一个序列化程序来读取csv.
serializers.py
现在转到您的urls.py并按以下方式调用视图类
我希望这能澄清你的疑虑