컴굥일지
[Django Study 06] Django CRUD 및 CreateView 본문
반응형
[Class Based View, 장고의 CRUD]
- 장고는 CRUD 사용에 최적화 되어있다. (class 제공한다.)
- function based 보다 class based가 더 좋다.
- CRUD를 사용하면 생산성이 높아지고, 가독성도 좋아지며, 복잡성이 낮아지고, 시간도 적게 소모된다.
[CreateView를 통한 회원가입 구현]
- 중요 파라미터를 적어주어야 한다. ( model, form_class, success_url, template_name )
#accountapp/views.py
class AccountCreateView(CreateView):
# 어떤 모델을 사용할 것이다. #User - 장고에서 기본 제공해주는 모델
model = User
# User 모델을 만들기 위해 사용할 form이 필요하다
# UserCreationForm - 장고가 기본 form을 제공해준다.
form_class = UserCreationForm
# 계정을 만드는데 성공했다면, 어느 경로로 다시 재연결 할 것인가
# reverse_lazy(경로)는 reverse()와 기능은 같은데 class에서 사용하는 방식이다.
success_url = reverse_lazy('accountapp:hello_world')
# 템플릿을 지정해주어야 한다. (회원가입을 할 때 보는 화면)
template_name = "accountapp/create.html"
# create.html을 새로 생성하면 당연히 urls.py에도 연결을 해주어야 한다.
#accountapp/urls.py
#class based view에서는 .as_view()를 붙어야 한다.
path('create/', AccountCreateView.as_view(), name='create')
<!-- create.html -->
{% extends 'base.html' %}
{% block content %}
<div style="text-align:center">
<!-- action에는 요청을 보내는 url이 들어간다.
veiws.py에서 reverse(경로)로 쓰던 것처럼 HTML은 아래와 같이 쓴다.
"accountapp라는 앱에서 create라는 routing으로 가라"-->
<form action="{% url 'accountapp:create' %}" method = "post">
<!-- POST방식을 쓰기 위해서는 csrf토큰이 필요하다-->
{% csrf_token %}
<!-- views.py의 AccountCreateView에서 form_class로 form을 받아왔다.
그걸 그대로 쓰면 된다.-->
{{ form }}
<input type="submit" class="btn btn-primary">
</form>
</div>
{% endblock %}
[출처] 작정하고 장고! Django Pinterest 따라만들기 : 바닥부터 배포까지
섹션 1. Django Tutorial (20강)
섹션 2. Accountapp implementation (21강)
반응형
'프로그래밍 강의 > Django' 카테고리의 다른 글
[Django Study 08] DetailView, UpdateView, DeleteView 를 통한 accoutapp 구현 (0) | 2022.04.20 |
---|---|
[Django Study 07] Login / Logout 구현 및 Bootstrap을 통한 디자인 (0) | 2022.04.19 |
[Django Study 05] Model, DB 연동, HTTP 프로토콜(GET, POST), DB 데이터 저장 (0) | 2022.04.14 |
[Django Study 04] Style and CSS (0) | 2022.04.13 |
[Django Study 03] Django Template - extends, include로 HTML 만들기 (0) | 2022.04.12 |
Comments