Web Programming35 [Django] CRUD Operation(5) 이전 포스트까지 CRUD Operation을 구현해보았다. 한 가지 특이점이 온다. 1) 왜 글을 생성하거나 수정할 때는 views.py에서 두 개씩 메소드를 정의해야하는 걸까? Create new, create Read detail Update edit, update Delete delete Create와 Update도 하나의 메소드에서 정의가능하다. 그 방법을 알아보자 목표 - Create와 Update를 각 하나의 메소드로 정의하기 - GET과 POST 방식의 차이를 알기 Create 메소드 수정 1) index.html index.html에서 'new' 로 지정해줬던 url 템플릿 테그를 'craete' 로 수정 새 글쓰기 2) new.html new.html에서 form 태그 안의 method .. 2020. 6. 20. [Django] CRUD Operation(4) 목표 - CRUD Operation에서 Update - 데이터베이스에 저장된 데이터 수정하기 데이터베이스에 저장된 데이터를 수정하는 방법을 구현해보자 edit.html 생성 1) app 디렉토리 내의 templates 디렉토리 내에 글을 수정하기 위한 html 파일을 생성 edit.html input 태그 내의 value 속성을 이용해 이전에 원래 해당 post에 저장되었던 값들을 불러온다. 2) edit 메소드 정의 def edit(request, post_id): # 매개변수로 전달받은 id에 해당하는 post 객체를 불러온다. post = get_object_or_404(Post, pk=post_id) # 딕셔너리 형태로 template에 전달한다. 전달한 쿼리셋은 수정화면에서 이전에 저장되어있던 .. 2020. 6. 20. [Django] CRUD Operation(3) 목표 - CRUD Operation에서 Delete - 데이터베이스에 저장된 데이터 삭제하기 데이터베이스에 저장된 데이터를 삭제하는 방법을 구현해보자 delete 메소드 정의 def delete(request, post_id): # 삭제할 레코드의 id 값을 get_object_or_404 메소드의 파라미터로 전달 get_object_or_404(Post, pk=post_id).delete() # redirect 메소드로 삭제 후에 되돌아갈 페이지를 지정 return redirect('/') 1) delete 메소드의 인자로 삭제할 레코드에 id값을 전달받는다. 2) 전달받은 id값을 통해 get_object_or_404 메소드로 해당 객체를 받아오고, delete 메소드로 삭제한다. 3) 삭제한 후 되.. 2020. 6. 20. [Django] CRUD Operation(2) 목표 - CRUD Operation에서 Create - 데이터베이스에 데이터 저장하기 데이터베이스에 데이터를 저장하는 방법을 구현해보자 새 페이지 생성 1) html 파일 생성 글을 작성할 수 있는 html 파일을 하나 생성 input 태그의 name은 views.py에서 전달받은 값을 구별할 수 있는 속성이 된다. 2) views.py 메소드 정의 def new(request): return render(request, 'new.html') 3) urls.py path('new/', blog.views.new, name='new') 또한, index 페이지에서 새글을 쓸 수 있는 new 페이지로 이동할 수 있는 a 태그를 하나 추가하자 새 글쓰기 {% for post in posts %} {{post... 2020. 6. 20. [Django] CRUD Operation(1) CRUD Operation - 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 말 - 웹 어플리케이션에서도 모델은 기본적으로 CRUD의 4가지 방식으로 동작한다 목표 - CRUD Operation에서 Read - 데이터베이스에 저장된 데이터를 읽어오기 저번 블로그 포스트에서 Django 관리자 기능을 활용해 데이터베이스에 데이터를 생성하고, 데이터베이스에 저장된 레코드를 쿼리셋으로 모두 받아오는 방법을 알아보았다. 이번에는 데이터베이스에 저장된 각 레코드 하나를 표현할 수 있는 화면과 로직을 구성해보자 html 파일 생성 - 지난 포스트에서 생성했던 Blog에 대한 레코드 하나를 표현할 html하나를 .. 2020. 6. 19. [Django] Model MTV패턴에서 M(Model) 즉, 모델은 데이터베이스과 관련이 있는 영역이다. 모델에서 클래스를 생성하면 장고에 내장되어있는 ORM을 통해 테이블의 스키마가 생성된다. 목표 1) 블로그에 포스트되는 게시글처럼 게시글을 만들 수 있는 클래스를 생성 2) 데이터를 저장하고 출력 Model 내 Class 생성 class Post(models.Model): title = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') content = models.TextField() def __str__(self): return self.title app 디렉토리 내에 models.py에 위와 같이 클래스를 생성 객체지향 관.. 2020. 6. 19. [Django] 클라이언트 요청 처리 url에 입력되는 클라이언트의 요청은 view를 통해 처리되게 된다. 이러한 로직을 정확히 파악하려면 먼저 MVC 패턴에 대한 이해가 필요하다. Django에서는 ruby on rails나 spring에서 사용되는 MVC 패턴과 같은 MTV 패턴을 사용한다. M은 Model Django의 T(Template)는 다른 프레임워크의 V(View)와 같다. Django의 V(View)는 다른 프레임워크의 C(Controller)와 같다. MVC 패턴에 대한 이해는 아래 링크를 참조 ! MVC 패턴은 추후 업로드 예정 클라이언트가 입력한 데이터에 대한 간단한 처리를 하는 기능을 구현해보자 1) 사용자는 index 화면에서 두 개의 데이터를 입력하고 서버에 두 값의 합을 요청 2) view는 두 개의 데이터의 합.. 2020. 6. 19. [Django] 프로젝트 생성과 앱 생성 프로젝트 생성 - django 프로젝트는 하나의 프로젝트와 여러개의 app으로 구성 - app을 여러 개로 구성함으로써 app 단위의 재사용과 유지보수의 이점을 가져올 수 있음 $ djagno-admin startproject 프로젝트명 (ex. django-admin startproject project) 프로젝트 디렉토리와 몇가지 python 파일이 생성된다 1) settings.py 기본적인 프로젝트 전체의 세팅과 app을 등록하는 일을 한다 2) urls.py 프로젝트의 url을 관리한다 3) manage.py 프로젝트 대부분의 명령어가 manage.py를 통해 실행된다 app 생성 - app은 프로젝트를 구성하는 부분 - app 단위로 나누어 개발하기 편하고 재사용하기 편리하게 해준다 $ pyt.. 2020. 6. 19. [Django] 가상환경 준비 가상환경 파이썬의 각 모듈은 다른 모듈에 대한 의존성이 다르기 때문에 마구잡이로 설치하다보면 충돌이 날 수도 있다 따라서 각 프로젝트 별로 가상환경을 만들어놓고 사용해 버전을 관리해야한다. 가상환경 생성 $ python -m venv myvenv 가상환경 실행하기 $ source myvenv/bin/activate ( mac ) $ source myvenv/Scripts/activate ( window ) 가상환경 종료하기 $ deactivate Django 설치하기 $ pip3 install django 2020. 6. 18. [프론트엔드/베이직] 리스트 페이지 만들기 두 번째 만들어 볼 페이지는 리스트 페이지 입니다 리스트 페이지라고 정식 이름이 있는 게 아니라 그냥 제품이나 서비스들을 나열할 수 있는 페이지란 의미에서 그렇게 말하는 거니까 없는 말 지어낸다고 기분 나빠하지 마세요 아기사자분들 많이 익숙한 사이트라고 생각되는데 이런 식으로 상품이나 서비스를 나열하고 클릭을 하면 상품의 정보를 볼 수 있도록 해주도록 만들어 볼게요 crud 세션 때 했던 r(read)에 제일 관련된 부분이라고 생각되네요 나중에 create, update, delete와 관련된 페이지도 한 번 같이 만들어 볼게요 우리가 이제 만들어볼 페이지의 기본적인 레이아웃입니다. 기본적인 틀은 첫 번째에 알려드렸던 메인 페이지에서 네비게이션 바와 대문사진, 풋터는 그대로 사용할 거예요 페이지를 만들 .. 2019. 5. 12. [프론트엔드/베이직] 메인 페이지 만들기 경북대학교 프론트엔드를 공부하는 아기사자 화이팅! 우선은 프론트엔드가 가장 처음으로 만들게 되고 가장 신경 쓰는 메인 페이지를 만들어 볼게요 6기 활동 간에 프론트 엔드를 할 때, 가장 신경 쓰이고 귀찮고 어렵고 불만족스러웠던 게 메인 페이지라고 할 수 있는데 아기사자들은 잘할 거라 생각해요 메인 페이지는 우리가 보통 사이트에 들어갔을 때 가장 처음 보게 되는 페이지입니다. 보통 home.html 또는 index.html로 파일을 명명해줍니다 메인 페이지는 음.. 제공하는 서비스나 아이템에 따라 다르겠지만 보통 1. 네비게이션 바 2. 대문 사진 3. 회사 소개 4. 서비스 소개 5. 풋터(?) 로 구성해요 자 그럼 하나하나 만들어봅시다 1. 네비게이션 바 네비게이션 바는 쉽게 말해서 각 페이지로 갈 수.. 2019. 5. 11. 이전 1 2 3 다음