본문 바로가기

Develop/Django(Exercise)_v17

7. 사진 게시물 수정 기능 만들기 1. 템플릿 기존 photo_post.html 그대로 이용. 2. 뷰 def photo_edit(request, pk): photo = get_object_or_404(Photo, pk=pk) if request.method == "POST": form = PhotoForm(request.POST, instance=photo) if form.is_valid(): photo = form.save(commit=False) photo.save() return redirect('photo_detail', pk=photo.pk) else: form = PhotoForm(instance=photo) return render(request, 'photo/photo_post.html', {'form': form}) 설.. 2023. 9. 17.
6. 사진게시물 작성기능 .with (csrf_token(보안)) 1. 템플릿 photo/templates/photo/photo_post.html 작성 Photo App 홈으로 돌아가기 New Photo {% csrf_token %} {{ form.as_p }} 완료! 설명 : 폼은 사용자가 데이터를 입력하여 서버로 보내도록 도와주는 양식이다. 사용자는 이 양식을 채워서 POST 방식으로 요청을 보내면 서버에서는 해당 요청을 받아 처리하게 된다. ※ csrf_token이란, 보안 취약점을 방지하기 위한 보안 토큰이다. 사용자의 세션에 있는 토큰과 요청으로 들어온 토큰이 일치하는지 확이낳여 해당 취약점을 방지할 수 있다. 즉, post요청의 보안을 지켜주는 도구라고 이해하자. ※ form.as_p는 우리가 만들 form을 태그형식으로 만들어 주겠다는 것. 2. forms.. 2023. 9. 17.
5. 에러 데이터 처리 / 상세페이지 만들기 1.에러데이터 처리 뷰를 다음과 같이 고친다. from django.shortcuts import render, get_object_or_404 from .models import Photo # Create your views here. def photo_list(request): photos = Photo.objects.all() return render(request, 'photo/photo_list.html', {'photos': photos}) def photo_detail(request, pk): photo = get_object_or_404(Photo, pk=pk) return render(request, 'photo/photo_detail.html', {'photo': photo}) 새로 나.. 2023. 9. 15.
4. ORM(Object Relation Mapping) 기존의 html을 데이터 전환 방식으로 변경( 템플릿 태그를 이용하여 데이터를 뷰로부터 받을 수 있음 ) Photo App 사진 목록 페이지 {% for photo in photos %} {{photo.title}}" {{ photo.author }}, {{ photo.price }}원 {% endfor %} view( 데이터 가져오는 ..) 도 적절하게 변경 from django.shortcuts import render from .models import Photo # Create your views here. def photo_list(request): photos = Photo.objects.all() return render(request, 'photo/photo_list.html', {'pho.. 2023. 9. 15.
3. Django Template / View Django에서 템플릿은 사용자에게 보이는 부분을 의미한다. Django만의 장점은 템플릿 태그(Template tag)를 제공한다는 점이다. 템플릿 태그는 아주 편하게도 파이썬으로부터 바로 데이터를 넘겨받아 정적인 html을 동적으로 전환시키는데 주요한 역할을 한다. 1. 사진 목록 화면 만들기 1-1) 템플릿 만들기 앱마다 템플릿을 정의할 것이기 때문에 photo 폴더 내에 templates라는 폴더를 만들면 된다. → 나중에 템플릿 파일을 불러 올 때 'my_template.html'과 같은 이름으로 불러오게 된다. photo 안에 templates라는 폴더를 만들고 그 안에 photo파일을 만든 후, photo_list.html을 생성 다음과 같은 기본적인 코드를 작성한다. Photo App 마이.. 2023. 9. 14.
2. Model 이해하기 (어드민 페이지 적용_Django.restAPI) MTV패턴의 M부분, 즉 MODEL ( 관리자 데이터페이지) 에 대해서 알아보자. 1. 어드민 페이지 접속 먼저 Migration 에러부터 수정하고 들어가자. 터미널에 다음 명령어 입력. → python manage.py migration 그 다음 파이썬 서버를 run 한 이후에 → python manage.py runserver (이전글에서 적었듯이 django 세팅 후 myvenv 가상환경 실행한 다음, 서버를 켜야 잘 동작한다,) 장고 선언 주소인 127.0.0.1:8000/admin/을 접속하면 다음의 화면을 확인할 수 있다. Django에서는 기본적으로 관리자 페이지를 이렇게 제공해준다. myweb의 url.py에 가면 다음의 코드를 확인할 수 있다. 어드민페이지까지 제공해주다니 참으로 편리하지.. 2023. 9. 7.
반응형