render은 parameter로 Context를 넘겨 받을 수 있다.
반면, redirect는 단지 Url로 이동을 하는 역활만 수행한다.
즉, render는 template을 불러오고, redirect는 url로 이동하여 그 url에 맞는 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창을 띄우는데 성공하였다.
sqlite3에서 table 여러개를 호출하는 연습을 해야 한다.
기존 db 처럼 select, where join 기능을 하는 방법을 정리해야 할 듯 싶다.
오늘은 comment table과 Customer table을 'Many to one' 형식으로 연결해 보았다.
사용하는 방식이 약간 특이한데,
Customer class에 pk로 해준 값을 Comment 테이블에서 fk로 넣어주면 된다. (sqldeveloper과는 확실히 편리하다)
이 방식은 Comment를 생성함과 동시에 db에 있는 Customer의 모든 pk 값을 list로 불러주는 듯 하다.
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
Comment app 따로 생성 후 Customer model과 연동할 것
signup 성공시 customer list json parsing 한 후 넘겨줄 것
넘겨준 json 받아서 출력할 html 만들고 js로 출력해 볼 것
signin template과 view 만들고 validation
signin 후 comment 작성 가능한 template 만들고 db 저장 view 만들기