카테고리 없음

1-1. 장고 1 주차 강의 요약, 파이썬 문제 풀이

abccoco 2022. 5. 26. 22:29
장고 1주차 강의와 1주차 마지막의 파이썬 문제 풀이
"1주차 강의는 대부부분 파이썬 기초 부분이라 기초 다지기에 좋은 시간이었다"

 

 

용어 정리

 

request

  • 요청


response

  • 응답

 

 

mvt

  • mvt 패턴은 장고가 일하는 방식이다

 

일하는 순서
  • db에 데이터 보내는 순서
  1. 사용자 요청
  2. url 확인
  3. view을 통과
  4. modle도 통과
  5. db도착
  • db에서 다시 사용자로 보내는 순서
  1. db
  2. modle
  3. view
  4. template or 사용자
  5. 사용자

 

API

  • 데이터를 주고 받기 위해 약속한 방법

클라이언트와 서버가

네이버에 들어가려면 www.naver.com 이라는 url을 작성해야 들어갈 수 있다는 약속이 있다

이런 방식으로 데이터를 주고 받자 하는 약속이 바로 api다

* 클라이언트: 나

* 서버: 응답을 받아 돌려주는곳


장고 프로젝트 파일 용어

settings.py

  • 말 그대로 장고를 setting 해주는 중요한 파일이다

 

url.py

  • 장고 프로젝트 전체의 api를 담당하고 있는 부분이다
    접속할 수 있는 url주소를 만들어주고 관리하는곳이다

 

 

장고 기초에서 중요한 3가지

model, view, template(MVT)

 

  • model

장고가 사용하는 모델중 하나이다
장고는 orm 이라는 model를 사용한다

db의 형태를 나타내고 있다라고 생각하자

 

  • ORM

orm은 db와 소통하는 방법중 하나이다
query를 쓰지 않아도 데이터 저장, 삭제, 수정이 가능하다
파이썬으로 db class modle을 만들고 만든 모델을 바탕으로 자동으로 db를 다룰 수 있도록 도와준다

잊을 뻔한점: orm은 db의 형태를 클래스로 나타내준다

* query: db를 다루기 위해 사용하는 언어

 

  • view

실질적으로 프로그램이 동작하는 부분이다
기능을 만들고 싶다 하면 view에서 작업을 한다

 

  • template

사용자가 보는 화면이다 html파일 유저에게 전달한다

 

 

 


장고 문제풀이

 

데이터 : my_station=['야탑','모란','이매','선릉','한티','왕십리']

 

문제 1

주어진 데이터를 반복문으로 모두 출력하는 station_list 함수를 작성하세요

my_station = ['야탑', '모란', '이매', '선릉', '한티', '왕십리']

# station_list와 매개변수 station_list를 넣어준다
# 매개변수인 station_list안에 my_station가 들어가고
# for문으로 열심히 돌려서 리스트를 station으로 넣어주고 출력한다
def station_list(station_list):
    for station in station_list:
        print(station)
        
station_list(my_station)

 

문제 2

주어진 데이터를 반복문과 조건문을 사용하여 '선릉'만 출력 하는 station_point 함수를 작성하세요

my_station = ['야탑', '모란', '이매', '선릉', '한티', '왕십리']

# 위와 비슷하게 a안에 my_station을 넣어주고 for문으로 돌리고
# for문으로 야탑...모란... 가다가 선릉이 되면 프린트해라
# 돌다가 선릉과 ==(같아졌으니) for이 멈추고 그 값이 station에 들어간다
# 조건 충족했으니 print(station(선릉이 들어가 있음))
# 조건 문자열 선릉역입니다도 출력 가능
def station_point(a):
    for station in a:
        if station == '선릉':
            print(station, '선릉역입니다')
            
station_point(my_station)


# 이것도 가능하다
def station_point(a):
    for station in a:
        if station == '모란':
            print('선릉')
            
station_point(my_station)

 

문제 3

게시글을 저장하는 class를 만들려고 합니다

클래스 안에 들어갈 변수는 ( id, title, author, content) 으로 모두 빈 문자열로 저장하고,

게시글 한 개를 저장해 보세요!

# myBakery라는 class를 만들어 주었다
class myBakery:
    title = ''
    time = ''
    taste = ''

# myBakery라는 클래스를 cookie 라는 변수 안에 넣어준다
# cookie는 이제부터 클래스처럼 사용 가능
cookie = myBakery()
# myBakery의 title, time, taste안에 각각 값을 넣어준다
cookie.title = '새우깡'
cookie.time = '2h'
cookie.taste = '매운맛'

# 하나씩 출력 할 수도 있고
print(cookie.title)
print(cookie.time)
print(cookie.taste)
# 한번에 출력도 가능하다
print(cookie.title, cookie.time, cookie.taste)

 

문제 3번 응용

변수를 사용하지 않고 출력한다

# myBakery라는 class를 만들어 주었다
class myBakery:
    title = ''
    time = ''
    taste = ''

# class를 바로 가져와서
myBakery.title = '머핀'
myBakery.time = '1h'
myBakery.taste = '초콜릿'

# print 해주어도 값은 나오지만 변수를 사용하는걸 추천
# 가능하다라는것만 보여주기 위해 작성했다
print(myBakery)
print(myBakery.time)
print(myBakery.taste)

 

 

 

 

번외

딕셔너리 형태에서 name을 가져오는 2가지 방법이 있다

my_info={'name':'paul', 'phone':'01012345678', 'birth':'0103'}


my_info 
print(my_info['name'])
print(my_info.get('name'))