TIL77. Wetcha Pedia Project:CSVとアップロードプログラム.pyを使用してデータを管理する
9719 ワード
📌 このパブリケーションでは、Wetcha Pediaクローンプロジェクトのデータを管理するCSVファイルとアップロードプログラムが提供されます.pyの使い方をまとめました.
✔CSVとは、データがカンマ単位で項目を区切って格納されているデータのことです.これは私たちが知っているExcelのような形式のファイルです.CSVはカンマで区切られているので、Excelのようなプログラムで読み取ることも、生成することもできます.
主に、表形式のデータまたはテキスト形式のデータを格納するために使用されます.
✔CSVファイルはデータが小さく、複数のアプリケーションで使用できるなどの利点があり、同じデータを格納する場合、JSONデータより半分少ない容量で使用する.
✔¥АААААААААААААこれは、データにカンマがある場合、そのカンマを次の列として認識し、他の記号で置き換えることができるからです.これにより、区切り記号を指定できます.
✔CSVファイルは、手帳、vcode、Excel、numbersなど任意の場所で空のファイルを開き、カンマで区切られたデータを入力します.csv拡張子で保存すればいいです.
✔¥作る際に注意したいのが、カンマの間に不要なスペースを作らないことです.
✔¥環境変数にDjangoを設定した後、django.setupを呼び出します.
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
✔¥表は模型です.pyからインポートしたら、csvファイルを開いてcsvファイルを読み込む準備をします.
10004 csvファイルに最初の行の列名が存在するため、next関数を使用して最初の行を無視します.
✔▼▼csvのデータをフィールド値にマッピングし、オブジェクトを作成します.
✔入力したフィールドが別のテーブルのid値を参照している場合は、「フィールド名id」をフィールド値として使用します.
🌈 CSVとアップロードプログラム。pyを使用してデータを管理する
🔥 CSVデータとは?
🔥 uploader.pyを使用してCSVファイルDjangoで処理
1.CSVデータとは?
🤔 なぜComma Seperated Valueを使うのですか?
✔CSVとは、データがカンマ単位で項目を区切って格納されているデータのことです.これは私たちが知っているExcelのような形式のファイルです.CSVはカンマで区切られているので、Excelのようなプログラムで読み取ることも、生成することもできます.
主に、表形式のデータまたはテキスト形式のデータを格納するために使用されます.
✔CSVファイルはデータが小さく、複数のアプリケーションで使用できるなどの利点があり、同じデータを格納する場合、JSONデータより半分少ない容量で使用する.
✔¥АААААААААААААこれは、データにカンマがある場合、そのカンマを次の列として認識し、他の記号で置き換えることができるからです.これにより、区切り記号を指定できます.
🤔 CSVファイルの作成方法
✔CSVファイルは、手帳、vcode、Excel、numbersなど任意の場所で空のファイルを開き、カンマで区切られたデータを入力します.csv拡張子で保存すればいいです.
✔¥作る際に注意したいのが、カンマの間に不要なスペースを作らないことです.
name,password,email,sex,location
testuser1,1q2w3e4r!,test1@gmail.com,male,seoul
testuser2,1q2w3e4r!,test2@gmail.com,female,jeju
testuser3,1q2w3e4r!,test3@gmail.com,male,busan
testuser4,1q2w3e4r!,test4@gmail.com,female,seoul
testuser5,1q2w3e4r!,test5@gmail.com,female,incheon
✔¥上のcsvファイルは実は下の表と同じです.カンマでセルを区別できるからです. 2. uploader.pyを使用してCSVファイルDjangoで処理
🤔 Djangoでcsvファイルを処理する方法
✔¥環境変数にDjangoを設定した後、django.setupを呼び出します.
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
✔¥表は模型です.pyからインポートしたら、csvファイルを開いてcsvファイルを読み込む準備をします.
10004 csvファイルに最初の行の列名が存在するため、next関数を使用して最初の行を無視します.
✔▼▼csvのデータをフィールド値にマッピングし、オブジェクトを作成します.
✔入力したフィールドが別のテーブルのid値を参照している場合は、「フィールド名id」をフィールド値として使用します.
import os # 👈 os import
import django # 👈 django import
import csv # 👈 csv import
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings")
django.setup()
from users.models import User
from movies.models import *
CSV_PATH_USERS = "csv/users.csv"
CSV_PATH_GRADES = "csv/grades.csv"
CSV_PATH_MOVIES = "csv/movies.csv"
with open(CSV_PATH_USERS) as in_file:
data_reader = csv.reader(in_file)
next(data_reader, None)
for row in data_reader:
User.objects.create(name=row[0], password=row[1], email=row[2], profile_image_url=row[3])
with open(CSV_PATH_GRADES) as in_file:
data_reader = csv.reader(in_file)
next(data_reader, None)
for row in data_reader:
Grade.objects.create(name=row[0])
with open(CSV_PATH_MOVIES) as in_file:
data_reader = csv.reader(in_file)
next(data_reader, None)
for row in data_reader:
Movie.objects.create(
title=row[0],
poster_image_url=row[1],
country=row[2],
description=row[3],
running_time_in_minute=row[4],
released_at=row[5],
grade_id=row[6],
)
Reference
この問題について(TIL77. Wetcha Pedia Project:CSVとアップロードプログラム.pyを使用してデータを管理する), 我々は、より多くの情報をここで見つけました https://velog.io/@jewon119/TIL77.-WetchaPedia-Project-CSV와-uploader.py-이용하여-데이터-관리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol