반응형

Django 13

[ django ] 설문 조사 만들기 5 ( 제네릭 뷰 사용하기 )

이름이 좀 거창 한 부분이 없지 않아 있는 것 같다. 한마디로 말하면 함수로 뷰를 구현했다면 이제 클래스로 구현해 보자는 것이다. 제네릭 뷰의 이점이라고 하면, 데이터베이스에서 데이터를 가져올 때 사용되는 코드의 중복 제거라던가, 백앤드 개발에서 POST, GET 등의 메시지 처리를 간소화할 수 있다는 것이다. 그럼 시작해 보자~ 1. polls/views.py을 수정해 보자. - 기존 코드를 그대로 두고 추가만 하여도 된다. from django.http import HttpResponseRedirect from django.shortcuts import get_object_or_404, render from django.urls import reverse from django.views import ..

int main()/django 2023.08.30

[ django ] Error during template rendering 에러

[ django ] 설문조사 만들기4 를 따라하다보면 다음과 같은 에러 화면이 나온다. 뭐가 문제인가??? 가만히 보고 있으면 'polls'라는 이름을 못찾는다는 에러이다. 해결 방법은 의외로 간단하다. 이름을 알려주면 그만이다. polls/urls.py에 앱 이름을 명시한다. app_name = "polls" 그리고 testProj/urls.py에 앱 이름을 알려준다. urlpatterns = [ path("polls/", include("polls.urls", namespace="polls")), path("admin/", admin.site.urls), ] 테스트를 해보니 polls/urls.py에서 앱 이름만 명시해도 해결된다. 여기서 끝~~

int main()/django 2023.08.29

[ django ] 설문 조사 만들기 4 ( 입력 폼 만들기 )

이번에는 간단한 입력 폼을 만들어보려고 한다. 이전까지는 너무 긴~~ 내용이라 앞으로는 짧게 짧게 가려고 한다. 1. 간단한 입력 폼 - 템플릿에 HTML의 을 넣어보자. - polls/detail.html을 수정한다. {% csrf_token %} {{ question.question_text }} {% if error_message %}{{ error_message }}{% endif %} {% for choice in question.choice_set.all %} {{ choice.choice_text }} {% endfor %} - 설문 조사의 각 항목을 라디오 버튼으로 표시한다. ( 각각의 라디오버튼은 선택한 항목의 ID를 value로 넘겨준다.) - 태그 안을 잠시 살펴보면 action이 있..

int main()/django 2023.08.18

[ django ] 설문 조사 만들기 3 ( 뷰 만들기 )

이전에 브라우저에서 요청하면 django에서 어떻게 동작하여 응답하는지 간단한 개념을 알아보았다. 브라우저 -> urls.py -> views.py -> 브라우저 이런 식의 흐름이었다. 이번에는 이 흐름을 조금... 아주 조금 깊이 들어가 보자. 1. 테스트 뷰 만들기 - polls/views.py에 아래 내용을 추가해 보자. def detail(request, question_id): return HttpResponse("You're looking at question %s." % question_id) def results(request, question_id): response = "You're looking at the results of question %s." return HttpRespons..

int main()/django 2023.08.16

[ django ] 설문 조사 만들기 2 (데이터베이스 설치)

아무것도 건드리지 않았다면 django에서는 기본적으로 sqlite3을 사용한다. testProj/setting.py를 확인해보면 아래와 같이 데이터베이스를 설정하는 부분이 있다. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } mysql이나 다른 데이터베이스를 이용하려면 아래와 같이 변경하면 된다.(아래는 mysql을 사용한 예이다.) DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # mysql 사용 'NAME': 'dbname', # 데이터베이스 이름 'USER': 'root', # 사용자명 'P..

int main()/django 2023.08.10

[ django ] 설문 조사 만들기 1

-- 목록 -- 1. [ django ] 시작하기 1. ( 가상환경 및 프로젝트 생성하기 ) 2. [ django ] 시작하기 2. ( pycharm 인터프리터 설정하기) 3. [ django ] 설문 조사 만들기 1 이전 포스트에서 가상환경 설정하고 브라우저에서 화이면 띄우고 pycharm의 인터프리터 설정까지 해주었다. 그 후로 무엇을 만들어야 할까?? 고민이 참 많이 들었다. 많은 책에서 다루고 있는 블로그나, 계시판을 만들어볼까 생각해 보았지만... 그저 똑같은 내용을 "ctrl + c", "ctrl + v"하는 것 같아 차마 그러지는 못하고, djago 공식 홈페이지에 있는 내용을 참고하기로 했다. 본 포스팅의 내용은 django 공식 홈페이지의 내용을 참고하여 작성하였음을 밝힌다. [ 참고 사..

int main()/django 2023.08.09

[ django ] 시작하기 2. ( pycharm 인터프리터 설정하기)

-- 목록 -- 1. [ django ] 시작하기 1. ( 가상환경 및 프로젝트 생성하기 ) 2. [ django ] 시작하기 2. ( pycharm 인터프리터 설정하기) 이전 [ django ] 시작하기 1에서 프로젝트를 준비했다면... pycharm에서 프로젝트를 열어보면 뭔가 찝찝한 메시지가 나온다. "프로젝트에 잘못된 Python 인터프리터가 선택되었습니다." 라는 경고 메시지가 나타 난다. 이것부터 처리를 하지 않으면 기분이 찝찝해서 안될것 같다. 오른쪽에 보면 "Python 인터프리터 구성"이라고 쓰여있는 부분을 클릭해 준다. 여기서 "새 인터프리터 추가" -> "로컬 인터프리터 추가..."를 클릭한다. 그러면 인터프리터를 선택할 수 있는 창이 팝업 된다. 기본 인터프리터를 선택하면 된다. 기..

int main()/django 2023.08.09

[ django ] 시작하기 1. (가상환경 및 프로젝트 생성)

-- 목록 -- 1. [ django ] 시작하기 1. ( 가상환경 및 프로젝트 생성하기 ) 2. [ django ] 시작하기 2. ( pycharm 인터프리터 설정하기) 블로그를 해야겠다 생각한 개기라고 해야되나? 여기저기 찾아 다니기 불편하고, 공부했던 내용을 복습할겸, 자료를 남기기 위해서이다. 누군가 보고 잘못된 내용이 있다면 언제든 지적해주기 바란다. 1. 준비 사항. - 파이썬 3.x버전으로 설치되어 있을것. (파이썬 설치 참고는 => 파이썬 설치 ) - pycharm 설치되어 있을것. 2. 디렉토리 만들기 - 디렉토리 구조는 간단하다. - 가상환경을 제공해줄 디렉토리 하나, 프로젝트(소스가 들어갈.) 디렉토리 하나. - 여기에서는 루트 디렉토리로 testProject를 사용하고 하위에 가상환..

int main()/django 2023.07.31

RuntimeError "APPEND_SLASH" 오류

python에서 나온 메시지는 아래와 같다. RuntimeError at /todo/API/5 You called this URL via PUT, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining PUT data. Change your form to point to 127.0.0.1:8000/todo/API/5/ (note the trailing slash), or set APPEND_SLASH=False in your Django settings. insomnia를 이용하여 DRF관련 테스트 중 발생 한 오류로, 브라우저에서 테스트할때..

int main()/django 2023.07.27