Framework/Django

장고 프로젝트 구조와 데이터베이스 업데이트

JM Lee 2023. 4. 3. 21:14
728x90

url과 view 부분을 우리는 주로 손댈 예정

 

저번에 공부했던 것을 한 번 더 복습

View : 실질적으로 프로그램이 동작하는 부분, url을 요청하고 그 사이에 일어나는 '서비스'들이 존재하는 곳

 

이번에는 SNS를 만들어보기로 했다. SNS의 메인 부분을 크게 3가지로 나누어 보았다.

  • 사용자 관리(로그인 ,회원가입, 로그아웃)
  • 글쓰기
  • 친구 만들기

그럼 이제 시작해볼까


 

그 다음 파일을 위해 user와 tweet 이름의 어플을 만들기 위해 다음과 같은 명령어를 실행해서

폴더에 새로운 것을 만들었다.

이걸 'app'이라고 한다.

 

app이라는 새로운 환경을 만들었으면, 다음 과정으로 setting.py로 들어가서 환경설정을 업데이트 해줘야 한다.

밑에 이런 식으로 적어줘야 한다. 마지막에 콤마는 꼭 찍어야 한다고 한다. 이유는 모르겠지만.

이러면 이제 user와 tweet 앱을 만들기 위한 셋팅이 준비되었다.

혹시나 확인해보고 싶으면 setting.py를 run해보자. 위 화면이 나오면 성공이다.


 

 

이제 데이터를 불러와야 하는데, 파이참 오른쪽에 database를 누르면 왼쪽 화면이 나온다.

+ 버튼을 누르면 오른쪽의 new data source 창이 나오는데, 여기서 db.sqlite3를 path로 눌러서 가져와야 한다.

driver는 물론 sqlite로 가져오게끔 설정한다.

그럼 다음 창이 나오는데,

name만 손대면 된다. name은 자기 원하는 대로.

그 다음 driver가 없으면 아래 다운로드 버튼 클릭해서 다운.

마지막으로 test를 해서 이상 없으면 apply 후 확인 클릭!

그럼 다음 창이 뜬다.. 할 거 많네

이러면 데이터베이스 연결 끝!


ORM

ORM : Class 문을 데이터베이스에 적용하는 것

           데이터베이스를 하나의 객체(object)로 인지

class myBakery:
    bread_type = ''  # 빵의 종류
    bake_time = ''  # 굽는 시간
    price = 0  # 가격

클래스가 기존 파이썬과는 다소 다르게 생겼다..라는 생각이 드는데

아직 어떤 느낌인지는 잘 모르겠으니 조금 더 공부하면서 생각해보았다.


 

user에 model.py에 들어가서, view로 보내는 법을 입력해두었다.

class를 작성해서 username, password, bio, created_at, updated_at이 어떤 형태로 데이터베이스에 들어가는지,

그런 점을 설정하는 코드이다.

Charfield같은 것들이 다소 어색한데, 아래 용어 정리표를 보고 다시금 이해해야겠다.

문자열 : CharField, TextField
날짜/시간: DateTimeField, DateField, TimeField
숫자 : IntegerField, FloatField
다른 테이블과 연관을 지어 줄 때 : ForeignKey

만든 모델을 데이터베이스에 넣기

데이터베이스 변경(makemigrations) - 변경된 데이터베이스 적용(migrate) 

 

 python manage.py makemigrations
 
 python manage.py migrate

터미널을 실행한 다음 위 코드를 터미널에 작성해서 실행하면 class문이 데이터베이스로 이동하게 된다.

그러면 이렇게 업데이트가 된다! 극초반에 배웠던 MYSQL이 생각난다.

왠지 앞으로 열심히 써먹을 거 같은 예감...