0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Django Rest Framework(DRF)とVuetifyを使って,csvファイルを読み込ませる

Last updated at Posted at 2021-02-12

はじめに

この記事ではDjango Rest Framework(DRF)とVuetifyを使って,csvファイルをバックエンド側で読み込ませる流れを記載します.これをやろうと思った時に少しつまづいたのでその備忘録です.

Vuetify側

<v-form type="submit">
<v-file-input  @change="onChange($event)"></v-file-input>
<v-btn @click="Submit()">
</v-form>
  • でファイルを読み込むことができます.ファイルを挿入すると$eventの中身に格納されます.読み込んだら下の感じで見れます.

  • 通常のinput type="file"でやる方法で下の中身を出力するにはevent.target.files[0]を記載します.

スクリーンショット 2021-02-12 15.47.25.png

script側の記載方法は以下の通りです.

data(){
return {
  file:""
}}
methods:{

onChange(event){
console.log(event);
this.file = file;
},
 async Submit() {
      const formData = new FormData();
      formData.append("file", this.file);
  
        await this.$axios.post("test/", formData)
        .catch(error => {
          return error.response;
        });
     
    }
  }
  • onChangeでファイルが入力されたのを確認しています.this.fileでファイル情報を格納.

  • test.csvの中身を確認したいときはFileReaderのオブジェクトが必要となるので,別途作成する必要があります.

  • buttonがクリックされたらSubmitが発火.ファイル情報はFormDataで格納します.

DRF側

import  pandas as pd
from rest_framework.decorators import api_view
from rest_framework.response import Response

@api_view(["POST"])
def api_view(request):
    if request.method == "POST":
        print(pd.read_csv(request.data["file"]))
        return Response(request.data,status=status.HTTP_200_OK)

  • バックエンド側でapi_viewのurlを作成し,そこにPOSTをします.その上でpd.read_csv()をするとcsvの中身をバックエンド側で読み込むことが容易にできます.

終わりに

今回はvuetifyの機能でファイルを読み込むことをしてみました.

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?