분류 전체보기
-
[Django] Template 상속Python & Django 2021. 6. 2. 13:17
장고에서는 템플릿을 상속하여 중복되는 코드가 없도록 관리할 수 있습니다. 이번에 템플릿을 상속하는 방법을 알아보겠습니다. 방법은 프로젝트 템플릿을 만들어 앱의 템플릿 중 중복되는 코드를 넣어 상속해주는 것입니다. 1. 프로젝트 템플릿 만들기 우선 상속을 해줄 템플릿을 만들기 위해 프로젝트 디렉토리에서 template 디렉토리를 생성하고, base.html 파일을 만들어줍니다. 그리고 그 안에 중복되는 코드들을 모두 넣어줍니다. 제 경우, html 코드와 부트스트랩의 navbar 를 넣었습니다. 이구의 블로그 ... 그리고 상속받는 템플릿의 내용이 나올 부분에 아래 코드를 넣어줍니다. 저는 네브바 하단에 넣었습니다. ... {% block content %} {% endblock %} 2. 상속받을 템플릿..
-
[Django] CRUD 로 블로그 구현하기 (DELETE)Python & Django 2021. 6. 1. 23:40
이제 CRUD 의 마지막인 삭제 기능을 구현해보겠습니다. 삭제 기능은 간단합니다. 기존의 객체를 id 로 불러와서 삭제한 후 목록 페이지인 home 으로 보내주면 됩니다. 1. 삭제 기능(delete) 뷰 만들기 def delete(request, id): delete_blog = Blog.objects.get(id= id) delete_blog.delete() return redirect('home') views.py 에서 delete 함수를 만들고 id를 받아옵니다. 그리고 Blog 모델에서 받아온 id에 해당하는 객체를 꺼내서 delete_blog 변수에 담습니다. 다음 delete 메소드로 삭제한 후 목록 페이지를 열어주기 위해 'home' 으로 보냅니다. url 만들기 urlpatterns = ..
-
[Django] CRUD로 블로그 구현하기 (Update)Python & Django 2021. 6. 1. 23:27
계속해서 update 기능을 만들어보도록 하겠습니다. 1. Update 기능 설계 update 기능은 create 와 유사합니다. 차이점은 새로운 객체를 만들어서 데이터를 넣어주는 것이 아니라, 기존의 데이터를 불러와 덮어씌운다는 것입니다. 1. 기존의 데이터 불러오기(edit) 2. 새로운 데이터로 덮어씌운 후 저장하기(update) 2. 게시물 수정 페이지(edit) 뷰 만들기 edit 에서는 view.py 에서 우선 기존의 게시물을 불러와야 합니다. 아래 코드를 작성해 기존 게시물을 불러오는 edit 함수를 만듭니다. def edit(request, id): edit_blog = Blog.objects.get(id= id) return render(request, 'edit.html', {'blog..
-
[Django] CRUD로 블로그 구현하기(CREATE)Python & Django 2021. 6. 1. 22:11
계속해서 CRUD 중 create 기능을 구현해보도록 하겠습니다! 1. Create 설계 create 기능은 두 가지로 나뉘어집니다. 1. 게시글을 작성하는 페이지(new) 2. 작성한 데이터를 저장하는 기능(create) 1번은 view 에서 게시물 작성 페이지(new.html)를 열어주고, 그 페이지에 데이터를 입력받을 폼을 생성합니다. 2번은 view 에서 폼에 입력한 데이터를 저장하는 기능을 만들어주면 됩니다. 2. 게시글 작성 페이지(new) 템플릿 만들기 우선 templates 에 new.html 파일을 만들어 게시물 작성 페이지를 만들어줍니다. 뷰 만들기 그리고 view.py 에서 new 메소드를 만들어줍니다. def new(request): return render(request, 'new..
-
[Django] get_object_or_404 로 404 페이지 만들기Python & Django 2021. 6. 1. 20:49
이전 포스팅에서 CRUD 중 Read 기능을 만들었는데요, 장고에서는 없는 페이지에 대한 요청이 들어왔을 경우 404 오류를 발생시켜주는 메소드가 있습니다. 이번에는 get_object_or_404 메소드를 알아보겠습니다. get_object_or_404 앞에서 만든 views.py 를 다음과 같이 수정합니다. from django.shortcuts import render from django.shortcuts import get_object_or_404 # 추가 from .models import Blog # Create your views here. def home(request): blogs = Blog.objects.all() return render(request, 'home.html', { ..
-
[Django] CURD 로 블로그 구현하기(READ)Python & Django 2021. 6. 1. 20:33
이번 포스팅에는 MTV 패턴을 활용해 CRUD (쓰기, 읽기, 수정하기, 삭제하기)가 가능한 블로그를 구현해보겠습니다. 우선 읽기 기능부터 시작합니다. 지난 포스팅인 Model 생성하기에서 이어서 하겠습니다. 1. Read 설계 CRUD 중 Read의 기능을 생각해보면 우선, 전체 게시글 목록을 보여주는 페이지와 각각의 게시글을 보여주는 상세 페이지로 나눠볼 수 있습니다. 여기서 목록 페이지는 home 으로, 상세 페이지는 detail 로 만들어보겠습니다. 앞에서 MTV 패턴에서 공부했듯이, 목록 페이지를 만드는 것은 MTV 패턴을 따릅니다. 1. 목록 페이지를 열었을 때, 해당요청 처리하는 view(모델을 통해 blog 데이터를 불러옴) - url - template(목록 페이지 - home.html)..
-
[Django] 모델 생성, 어드민 페이지 실습Python & Django 2021. 6. 1. 15:42
이전 포스팅에서는 MTV 패턴 중 모델을 제외한 Template, View 를 사용해 간단한 웹페이지 작업을 실습해봤습니다. 오늘은 모델을 만들고, 어드민 사이트에서 데이터를 작성하는 것까지 해보겠습니다. 1. 프로젝트, 앱 생성하기 다시 한번 더 프로젝트 생성부터 해보겠습니다. 우선, vs code에서 아래 명령어를 입력해 가상환경을 생성하고 실행하였습니다. $ python3 -m venv myvenv $ source myvenv/bin/activate 그리고 django 를 설치합니다. $ pip install django 다음 작업은 새 프로젝트를 생성하고 해당 프로젝트 폴더로 이동하여 새 앱을 생성하는 것입니다. 폴더를 이동하는 것은 새로운 앱을 생성하려면 manage.py 를 사용해야 하는데 해..
-
[Django] MTV 패턴과 간단한 예제 실습(model 제외)Python & Django 2021. 5. 21. 15:33
1. MTV 패턴 루비온레일즈를 시작할 때, MVC 패턴을 공부했었는데요, 장고에서는 이와 유사한 MTV 패턴을 활용합니다. 장고의 MTV 패턴은 Model, Template, View 를 의미하며, Model은 Database 에 접근을, Template은 사용자에게 보여지는 페이지를, View는 데이터의 처리를 담당합니다. 사용자가 서버에 요청을 보내면, 서버의 view는 model에서 요청에 필요한 데이터를 받고, view는 받은 데이터를 처리하여 template으로 전달합니다. 그러면 template은 받은 정보를 사용자에게 보여주는 것입니다. 즉, MVC 패턴의 Model, View, Controller 가 각각 MTV 에서 Model, Template, View와 대응된다고 할 수 있습니다. ..