[TIL] render, redirect, generic

한준수·2020년 6월 9일
0

Django

목록 보기
5/8

1. Render 와 redirect 의 차이

render은 parameter로 Context를 넘겨 받을 수 있다.
반면, redirect는 단지 Url로 이동을 하는 역활만 수행한다.

즉, render는 template을 불러오고, redirect는 url로 이동하여 그 url에 맞는 views를 또 실행하게 된다.
상황에 맞게 사용할 줄 알아야한다.

2. generic의 사용법, 언제 사용하는가?

(추가)

3. views 사용에 익숙해 지자

java의 controller 역활을 하는 것은 확실하지만 django의 views는 더 넓은 범용성을 가진다.
기본적으로 제공하는 내부 함수들이 많아 기능들을 정리하는것이 필수적일 것 같다.

SignUp views를 작성하면서
id, password, email validation에 대해 어려움을 겪었다.
단순 termina에서 print를 띄어주는 것이 아니라, client가 실질적으로 확인할 수 있는 messege를 보여주는 것이 중요하다.

처음에는 django.contrib 에서 messages를 import 하여 사용해 봤지만, html 내부에서 for문을 사용해야 되는 점도 있었고,
근본적으로 script 태그에서 불러오지 못하는 것 같았다.

해서, context에 int로 된 상태를 저장하고 그 값을 render를 통해 넘겨주어 사용하였다.
script 내부에서도 잘 불러와지고 if 문을 통해 alert창을 띄우는데 성공하였다.

4. model

sqlite3에서 table 여러개를 호출하는 연습을 해야 한다.
기존 db 처럼 select, where join 기능을 하는 방법을 정리해야 할 듯 싶다.

오늘은 comment table과 Customer table을 'Many to one' 형식으로 연결해 보았다.

사용하는 방식이 약간 특이한데,
Customer class에 pk로 해준 값을 Comment 테이블에서 fk로 넣어주면 된다. (sqldeveloper과는 확실히 편리하다)
이 방식은 Comment를 생성함과 동시에 db에 있는 Customer의 모든 pk 값을 list로 불러주는 듯 하다.

4-1. sqlite3 응용

model Meta class에 db_table = "table name"을 설정해 준다

class Meta:
db_table = "Customers"

다음 terminal에서

sqlite3 db_sqlite3
.header on
.mode on

라고 설정해 주면 select 문도 사용 가능하고 db column에 대한 info도 확인 할 수 있다. (shell보다 나은듯!)

pragma table_info("Customers") #table info 확인
나갈땐 :quit

5. Tomorrow's Todo List

  1. Comment app 따로 생성 후 Customer model과 연동할 것

  2. signup 성공시 customer list json parsing 한 후 넘겨줄 것

  3. 넘겨준 json 받아서 출력할 html 만들고 js로 출력해 볼 것

  4. signin template과 view 만들고 validation

  5. signin 후 comment 작성 가능한 template 만들고 db 저장 view 만들기

profile
One Step More

0개의 댓글