UDR 멘토링 3주차-2

오종찬·2022년 11월 5일
0

UDR 멘토링

목록 보기
6/10

장고 웹 프로그래밍 강좌

3강 git

https://www.youtube.com/watch?v=u7CyyHK2P_Q&list=PLi4xPOplIq7d1vDdLBAvS5PmQR-p6KwUz&index=3

1. 깃 사용법

이 프로젝트가 git을 사용하려고 하고있다는 것을 알리기 위해 사용

git init 

해당 파일에 있는 디렉토리를 보여줌

ls 

현재 위치로 부터 모든 디렉토리 파일들 추적

git add . 

현재 파일, 디렉토리 내용을 저장, 이후 글자를 작성하려고 'i'을 눌러줘야함

git commit 

첫번째 커밋 메세지

first commit 

내용 저장

:wq 

저장된 내용 보기

git log 

2. 깃허브

다른 사람들과 코드를 공유 가능

리모트 명령어 추가

git remote add origin ...   

로컬에 있는 소스가 깃허브 저장소에 저장됌

git push 

4강 데이터베이스

https://www.youtube.com/watch?v=-Nmtakm70Ro&list=PLi4xPOplIq7d1vDdLBAvS5PmQR-p6KwUz&index=4

settings.py 에서 DATABASE 'default' 값을 변경하면 다른 데이터베이스 사용 가능

INSTALLED_APPS은 기본으로 있는 앱들이며 다음과 같다

django.contrib.admin – 관리용 사이트
django.contrib.auth – 인증 시스템
django.contrib.contenttypes – 컨텐츠 타입을 위한 프레임워크
django.contrib.sessions – 세션 프레임워크
django.contrib.messages – 메세징 프레임워크
django.contrib.staticfiles – 정적 파일을 관리하는 프레임워크

py manage.py migrate 데이터베이스에서 테이블 만들기

1. 모델 만들기

설문조사 앱을 위해 Question과 Choice라는 두 개의 모델을 만들기

Question: 질문(question)과 발행일(publication)을 위한 두 개의 필드 필요
Choice: 선택지(choice)와 표(vote) 계산을 위한 두 개의 필드 필요

polls/models.py에 question클래스와 chocie클래스 등록

from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)   #foreign key= question이라는 모델을 참조하겠다의 의미
    choice_text = models.CharField(max_length=200)                      
    votes = models.IntegerField(default=0)

모델의 활성화

장고의 앱들은 꼈다뺏다 할 수 있으므로 다수의 프로젝트에서 사용할 수 있으며, 앱을 배포할 수도 있다.

settings.py 에 있는 INSTALLED_APPS에 아래있는 문장 추가
'polls.apps.PollsConfig', 앱 등록

변경 내용 확인

py manage.py makemigration polls 

변경 내용 적용

py manage.py migrate 

API 가지고 놀기

API= 개발자가 필요로 하는 데이터를 뽑을수 있는 함수

쉘 진입

py manage.py shell  

Choice, Question 사용

from polls.models import Choice, Question  

안에있는 모든 내용 불러오기

Question.objects.all() question 

발행일 시간을 위해timezone 라이브러리 임포트

from django.utils import timezone 

question 1개 추가

q = Question(question_text="What's new?", pub_date=timezone.now())

q.save() 저장하기

>>> q.question_text          #질문 보기
"What's new?"
>>> q.pub_date                #발행일 보기
datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=datetime.timezone.utc)

polls/models.py파일에 question 모델을 수정하여 __str__()메소드를 question과 choice에 추가, __str__()메소드를 추가하는 것은 편하게 보려는 이유 말고도,
장고가 자동으로 생성하는 관리사이트에서도 객체의 표현이 사용되기 때문

from django.db import models

class Question(models.Model):
    # ...
    def __str__(self):
        return self.question_text

class Choice(models.Model):
    # ...
    def __str__(self):
        return self.choice_text

개발자가 필요하는 커스텀 메소드 추가

import datetime

from django.db import models
from django.utils import timezone


class Question(models.Model):
    # ...
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)    #현재로부터 하루를 뺀 시간

exit로 나온후 다시 실행하여 확인

from polls.models import Choice, Question
>>> Question.objects.all()
<QuerySet [<Question: What's up?>]>

>>> Question.objects.filter(id=1)                 #question 에서 id=1 호출 
<QuerySet [<Question: What's up?>]>
>>> Question.objects.filter(question_text__startswith='What')  # question에서 What 으로 시작하는거 호출
<QuerySet [<Question: What's up?>]>

5강 장고admin사용법

https://www.youtube.com/watch?v=DRDuwNYT_Zk&list=PLi4xPOplIq7d1vDdLBAvS5PmQR-p6KwUz&index=5

관리자 생성하기

관리를 위한 관리자 사이트를 편하게 만들 수 있는 것이 장고의 장점

관리자 아이디 생성

py manage.py createsuperuser

이후 서버 시작후, 관리자 사이트 .../admin에서 로그인

앱을 보기위해 admin.py에 코드 입력

from django.contrib import admin

from .models import Question

admin.site.register(Question)

다음과 같이 만든 앱 표출됌


이번 강의도 저번에 들었던 강의들과 겹치는 부분이 많아서 괜찮았지만 초반에 깃을 사용한다는 점이 달랐다.이번에는 특별히 어려운 부분은 없어서 깃의 장점에 대해 알아보려고 한다.

과정
구글에 '깃 장점' 검색, 이후 아래 나온 사이트를 통해 깃에 대해 알고 깃과 깃허브의 차이에 대해 숙지함
https://velog.io/@lazysia/git-git

profile
평범한 대학생의 공부내용

0개의 댓글