일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Kafka
- 코테 연습
- Selenium
- Spark
- airflow
- django
- beuatifulsoup
- 코딩 테스트
- PCCP
- GCP
- SQL
- 데이터 시각화
- VPC
- 데이터 엔지니어
- 팀 프로젝트
- Til
- HTML
- Tableau
- superset
- 코딩테스트
- AWS
- cloud platform
- 슈퍼셋
- 데브코스
- Snowflake
- Today
- Total
주니어 데이터 엔지니어 우솨's 개발일지
데이터 엔지니어링 11일차 TIL 본문
학습내용
cmd에서 실행
pyhon 가상 환경 생성
py -m venv project-name
가성환경 활성화
django-project\Scripts\activate.bat
Django 프로젝트 생성
django-admin startproject mysite
생성한 프로젝트를 서버에서 실행
python manage.py runserver
프로젝트란?
하나의 웹사이트라고 생각하면 된다.
하나의 프로젝트는 여러개의 앱으로 구성된다.
app생성
python manage.py startapp polls
관계형 데이터베이스(RDB)
데이터를 행과 열로 이루어진 테이블의 형태로 구성하고, 테이블 간의 관계를 정의하는 데이터베이스이다.
테이블(Table)
데이터베이스에서 행과 열로 구성되어 있는 데이터의 집합을 의미한다.
model.py
모델을 테이블 별로 읽어서 테이블에 저장되어 있는 값을 코드에서 읽을 수 있도록 도와준다. (ORM)
1. 모델생성
2. 모델을 테이블에 써주기 위한 마이그레이션을 만든다.
3. 모델에 맞는 테이블을 만든다.
migration 파일 생성하기
python manage.py makemigratios polls
migration으로 실행될 SQL 문장 살펴보기
python manage.py sqlmigrate polls 0001
migration 실행하기
python manage.py migrate
Django에서 sqlite3로 데이터베이스 열기
sqlite3 db.sqlite3
migration 롤백
python manage.py migrate polls 0001
Django Admin계정 생성
python manage.py createsuperuser
admin.py에서 모델 등록
admin.site.register(Question) #models 안의 Question 클래스
admin.site.register(Choice) #models 안의 Choice 클래스
장고 쉘 실행
python manage.py shell
모든오브젝트 가져오기
Question.objects.all()
현재 날짜와 시간 구하기
from datetime import datetime
datetime.now()
from django.utils import timezone
timezone.now()
쉘 레코드 생성
q.choice_set.create(choice_text='b')
저장
q.save()
쉘 레코드 내용 추가하기
q.question_text = q.question_text + '???'
해당 오브젝트 삭제
choice.delete()
필터링
Question.objects.get(id=1) #하나가 넘으면 에러 발생
Question.objects.filter(pub_date_year=2023) #여러개 가능
반대 = filter대신 exclude
startswith='a' a로 시작
contains = 'a' a포함
gt = greater than 이상 gt=0 # 0이상
lt = less than 이하
쿼리 가져오기
print(Question.objects.filter(pub_date_year=2023).query)
정규표현식
Question.objects.filter(question_text__regex=r'^휴가.*어디')
-휴가로 시작 어디 포함
timedelta 날짜 계산
timedate.now() + timedelta(days=1, hours=1, minutes=30)
-1일 1시간 30분후의 날짜와 시간 계산
느낀 점
장고의 사용은 처음이라 쉽지 않았는데 첫날부터 내용도 많았지만 환경설정에서 여러 에러가 자주 일어나서 구글링을 하느라 엄청난 시간을 잡아 먹었다.
실습을 따라해보면서 감을 익히고 있지만 쉽지 않을거란 생각이 든다.
sql을 조금이나마 공부해둬서 쉘의 사용과 쿼리구조에 대해 대충 이해할 수 있었다.
sql에 대한 더 많은 공부가 필요하다고 느꼈다. 복잡하지만 재미있었다.
'데브코스' 카테고리의 다른 글
데이터 엔지니어링 13일차 TIL (0) | 2024.04.10 |
---|---|
데이터 엔지니어링 12일차 TIL (0) | 2024.04.09 |
데이터 엔지니어링 10일차 TIL (0) | 2024.04.05 |
데이터 엔지니어링 9일차 TIL (0) | 2024.04.04 |
데이터 엔지니어링 8일차 TIL (1) | 2024.04.03 |