WinGyu_coder
Python, Django 장고로 모의투자 서비스 제작하기 (5) - Django models.py 모델 필드 정의하기 본문
Python, Django 장고로 모의투자 서비스 제작하기 (5) - Django models.py 모델 필드 정의하기
WinGyu 2024. 2. 26. 22:56이전 포스트
Python, Django 장고로 모의투자 서비스 제작하기 (4) - Django 프로젝트 시작하기, APP 제작하기 (startproject, startapp)
https://wingyu-story.tistory.com/133
깃 허브 주소
https://github.com/decembaek/auto_stock_django
드디어,, 국내 주식 모델을 정의할때가 왔다.
Django models.py 파일에 모델 정의 해보자.
저번시간에 만든 korea_stock 앱에 들어가서 models.py 파일을 열어보자.
(필자는 작업을 좀 진행해서 파일이 몇개가 더 있다, 신경쓰지 말도록 하자,,)
models.py 파일을 열어서 모델 정의를 해줄거다.
(2) 번째 Django 포스트에 보면 엑셀파일 3가지가 있었을거다.
https://wingyu-story.tistory.com/131
위 주소로 접속하면 그때 포스팅 게시물을 볼 수 있다.
3가지 엑셀 파일이 있는데, 그 중 KSIC 한국 표준산업분류코드 있는 파일에 대한 모델부터 정의해보자.
# 004 반도체/반도체장비 029460
class KSICCodeModel(models.Model):
theme_code = models.CharField(default="", max_length=100) # 테마코드
theme_name = models.CharField(default="", max_length=200) # 테마명
ksic_code = models.CharField(default="", max_length=100) # 표준산업분류코드
이렇게 정의 했다. 쉽게 설명하면 models.CharField 는 문자열을 작성하는 필드이다.
max_length 를 일부러 길게 설정했다. 원래라면 정의서에 맞게 길이를 조절하는것이 정석이다.
(가끔 input 데이터 형태가 달라 생기는 오류가 싫으면 좀 널널하게 하는 방법도 있다.)
그다음 섹터 코드다. 업종 코드 및 업종명이 나온 데이터가 있다.
# 업종코드 업종명
# 1001 01KOSDAQ
class KisSectorModel(models.Model):
sector_code = models.CharField(
default="", max_length=50, primary_key=True
) # 업종 코드
sector_name = models.CharField(default="", max_length=200) # 업종명
이것도 CharField를 통해 문자열로 정의해준다.
위에 보면 알겠지만 예시값을 주석처리해둬서 참고하면 좋다.
그 다음 거의 메인 하이라이트인 주식 종목 코드 목록이다!
필자는 최신 주식 종목코드까지 있는 파일을 업로드 해두었다. (2) 게시판에 가면 있다.
# 주식 종목 코드 모델
class StockCodeModel(models.Model):
standard_code = models.CharField(default="", max_length=50) # 표준코드
code = models.CharField(default="", max_length=50, primary_key=True) # 단축코드
name = models.CharField(default="", max_length=100) # 한글 종목명
stock_name = models.CharField(default="", max_length=100) # 한글 종목약명
en_name = models.CharField(default="", max_length=100) # 영문 종목명
stock_open_date = models.DateField() # 상장일
market = models.CharField(default="", max_length=50) # 시장 구분
stock_kind = models.CharField(default="", max_length=30) # 증권 구분
affiliated = models.CharField(default="", max_length=30) # 소속부
stock_type = models.CharField(default="", max_length=30) # 주식종류
face_value = models.DecimalField(max_digits=10, decimal_places=2) # 액면가
total_stock_count = models.DecimalField(
max_digits=20, decimal_places=2
) # 상장주식수
자 굉장히 길다,
CharField는 알거라 믿고 다른 필드만 설명하겠다.
우선 Django 는 모델 정의시 자동으로 id (고유번호) 를 만들어준다. 명칭은 PK (primary_key) 라고한다.
고유번호를 지정함으로써 데이터를 찾아갈 수 있게 해준다. 주식 종목 코드 같은 경우 종목 코드가 고유하기 때문에
주식 종목 코드를 primay_key=True 로 지정해주었다 ( 참고로 pk는 1개만 지정가능하다 )
그리고 DecimalField가 보일것이다. 이것은 소수점까지 정확한 수치를 작성할때 쓰이는 필드이다.
소수점 정의 및 최대 길이도 지정이 가능하다. 공식 문서 및 예제들을 보면 금액 관련은 이 필드를 쓴다고 보면 된다.
자 오늘은 주식 종목 코드, 섹터코드, 한국표준산업분류코드 데이터를 저장할 models.py 를 정의해봤다.
다음 시간에는 정의한 파일을 가지고 데이터를 DB에 저장해볼거다.
------------------------------------------------------------
모의투자 웹 프론트 개발자를 구합니다..
사이트 프로젝트, 포트폴리오로가 필요하신분이면 연락주세요.
기술은 React, Vue, vanila JS, JQuery 다 상관 없습니다.
연락은 아래 이메일 또는 댓글로 주시면 됩니다. 감사합니다
email : tmdrbpp123@gmail.com
출처: https://wingyu-story.tistory.com/131 [WinGyu_coder:티스토리]
'Django 백엔드의 모든것' 카테고리의 다른 글
Python, Django 장고로 모의투자 서비스 제작하기 (6) - Python으로 Django DB에 데이터 저장하기 (0) | 2024.03.02 |
---|---|
Python, Django 장고로 모의투자 서비스 제작하기 (5 - 1) - Django DB에 엑셀 데이터 넣기 (0) | 2024.03.02 |
Python, Django 장고로 모의투자 서비스 제작하기 (3) - Docker 로 Mysql DB 생성하기 (0) | 2024.02.25 |
Python, Django 장고로 모의투자 서비스 제작하기 (2) - 주식 종목 코드, 섹터 코드, 표준산업코드 가져오기 (0) | 2024.02.25 |
Python, Django 장고로 모의투자 서비스 제작하기 (1) - 기획 및 방안 (0) | 2024.02.23 |