일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Dependency Injection
- html cell size
- DI
- table tag
- html
- Django
- Spring
- html cell
- Dependency
- Django 특정 값 가져오기
- table cell size
- Django column 값 가져오기
- Today
- Total
emluy 개발 일기
Django 웹 10 - (blog) 홈페이지에서 데이터 입력 받고 admin에 바로 저장되게 하기 본문
0. blogproject 프로젝트 폴더 만들기
1. blogapp 폴더 만들기
2. 쓴 글 간단히 보여주는 home.html 만들기 (setting 8 참고)
3. 쓴 글 자세히 보여주는 detail.html 만들기 (setting 8 참고)
1. bootstrap에서 nav bar 가져와서 html에 넣기 ( 기본설정 참고 )
: home.html , detail.html에 모두 넣음
2. nav bar 의 메뉴 중 하나를 '글쓰기'로 수정하고 클릭시 new.html 열게 하기 (모든 html에 적용)
#home.html 과 detail.html
3. 데이터를 입력 받을 html 새로 만듬
: new.html 만들기
- urls.py와 views.py에 기본 설정 해주기
- 똑같이 nav bar 추가 해주기
- 데이터 입력을 위한 form 태그 작성
#새로 만든 new.html
*이 때 작성한 form 태그의 data들을 create url로 보낼것이다
? : 아직 create.html 안만들었는데??
=> urls.py 의 create path로 간 후에 -> views.py의 create함수를 실행시킬 것인데 -> 함수에서 return render를 할것이 아니고 return redirect를 해주어 html을 실행시키는 것이 아니라 함수만 실행시킬 것이다. ( 무슨 말인지 다음 번호부터 )
? : create는 그럼 뭐를 위한 것인가?
=> 입력받은 data를 admin에 저장해주는 함수를 실행시키기 위한 것
4. urls.py에 create path 만들어주기
5. views.py에 create 함수 만들어주기
: 입력받은 데이터를 admin에 저장하기 위한 함수 만듬
코드 설명
- blog = Blog() : 블로그 객체 만들기
- blog.title = request.GET['title'] : new.html에서 입력받은 title(new.html에서 name="title") 데이터를 블로그 객체의 title에 넣음
- blog.body = request.GET['body']. : title 과 같음
- blog.pub_date = timezone.datetime.now() : new.html에 입력 시 시간을 블로그 객체의 pub_date에 넣음
- blog.save() : 완성한 블로그 객체를 admin에 저장
- return redirect('/blog/'+str(blog.id)) : admin에 데이터 저장 후에 어떤 홈페이지 뜨게 할건지 url로 알려줌 -> 여기서는 /blog/blog.id 즉 자세히 보는 페이지인 detail.html 이 뜨게함
? : 왜 str(blog.id)로 타입변환 해주나?
=> blog.id는 int 인데 url은 str 이므로 형변환 필요함
? : render함수와 redirect함수의 차이점은??
=> 둘이 완전히 다른 함수는 아님 겹치는 부분도 있고 조금씩 다를 뿐
=> 둘이 비슷한 함수인데 redirect는 url을 입력, render는 파일명을 입력
실행화면
#home.html
#new.html
#detail.html
'웹 개발 > Django' 카테고리의 다른 글
Django 웹 12 - (portfolio) Media 파일 업로드 (0) | 2020.05.11 |
---|---|
Django 웹 11 - (portfolio) Static 파일 이미지 업로드 (0) | 2020.05.07 |
Django 웹 기본 setting - bootstrap 연결하기 (0) | 2020.05.04 |
Django 웹 9 - 100글자만 보여주고 링크로 다 보여주기, app 2개 만들고 url 연결하기 (수정중) (0) | 2020.05.02 |
Django 웹 8 - Model object 2개 1:N 연결 (0) | 2020.04.23 |