클론코딩

    [pinterest clone (17)] UpdateView를 이용한 비밀번호 변경 구현

    create랑 유사하다. 우선 create 그대로 가져와서 조금만 수정하는식으로. views.py class AccountUpdateView(UpdateView): model = User form_class = UserCreationForm success_url = reverse_lazy('accountapp:hello_world') template_name = 'accountapp/update.html' urls.py from django.contrib.auth.views import LoginView, LogoutView from django.urls import path from accountapp.views import hello_world, AccountCreateView, AccountDeta..

    [pinterest clone (16)] DetailView를 이용한 개인페이지 구현

    createview는 뭔가를 만들어야하니까 form_class랑 (success_url) 성공했을때 redirect할 구간을 정해줬는데 detailview니까 어떤 모델을 쓸지 모델안에 있는 정보를 어떻게 시각화해줄지 그것만 신경써주면된다. 1 views.py class AccountDetailView(DetailView): model = User template_name = 'accountapp/detail.html' 2 detail.html 생성 {% extends 'base.html' %} {% block content %} {{ user.date_joined }} {{ user.username}} {% endblock %} 3 urls.py path 추가 from django.contrib.aut..

    [pinterest clone (15)] form 디자인

    1 django-bootstrap4 라이브러리 설치하기 django-bootstrap4.readthedocs.io/en/latest/installation.html Installation — django-bootstrap4 2.0.2 documentation © Copyright 2020, Dylan Verheul Revision 8c7d5e3c. django-bootstrap4.readthedocs.io 2 settings.py INSTALLED_APPS에 bootstrap4 추가 3 login.html {% extends 'base.html' %} {% load bootstrap4 %} {% block content %} Login {% csrf_token %} {% bootstrap_form for..

    [pinterest clone (14)] Login / Logout 구현

    장고에 Login view, Logout view 제공된다. 1 urls.py from django.contrib.auth.views import LoginView, LogoutView from django.urls import path from accountapp.views import hello_world, AccountCreateView app_name = 'accountapp' urlpatterns = [ path('hello_world/', hello_world, name='hello_world'), path('login/', LoginView.as_view(template_name='accountapp/login.html'), name='login'), path('logout/', Logout..

    [pinterest clone (13)] CreateView를 통한 회원가입 구현

    duckracoon.tistory.com/44?category=1017083 Django가 CRUD로 유명한 이유 CRUD는 Create, Read, Update, Delete가 가능한 시스템을 이야기한다. 그리고 Django는 CRUD를 만드는데 있어 생산성이 탁월한 것으로 유명하다. 왜일까? Django는 CRUD에 View를 따로 제공한다. Create view, Rea.. duckracoon.tistory.com Class Based View에 대해 이해하자. views.py class AccountCreateView(CreateView): model = User form_class = UserCreationForm success_url = reverse_lazy('accountapp:hello_..

    [pinterest clone (12)] DB 정보 접근

    duckracoon.tistory.com/41 [pinterest clone (11)] POST 통신을 이용한 DB 데이터 저장 1. Send POST data 2. Receive POST data 3. Save DB 1 hello_world.html {% extends 'base.html' %} {% block content %} Hello World List {% csrf_token %} {{ text }} {% endblock %} hello_world_input 받아.. duckracoon.tistory.com 앞서 만들면서 생기는 객체들이 db에 계속 쌓일텐데 그걸 모두 긁어와서 display하는 과정을 알아보자. views.py from django.shortcuts import render ..

    [pinterest clone (10)] HTTP 프로토콜 GET, POST

    protocol: 일종의 통신규약이다. 우선 알아둘 메서드: GET, POST User와 Server가 request하고 response 할텐데 서버가 뭘 원하는지 그런 추가적인 정보가 필요하다. 그런걸 넣어주는 방식이 GET, POST이다. (대충 이런 느낌) GET Inquiry: 보통 조회를 하기 위해서 요청을 많이 보냄. POST: 뭐 새로 만들때, 수정할때 많이 사용. 잘 모르겠다. 우선 써보고 뭔지는 나중에 더 공부해서 업뎃하겠다. GET, POST 실습 브라우저에서 주소창에 넣으면 자동으로 알아서 보내지게 되는게 GET이고 POST는 따로 설정을 해야한다. POST 쓸려면 HTML안에다 form을 만들어주어야한다. {% extends 'base.html' %} {% block content ..

    [pinterest clone (9)] Model, DB 연동

    만들어놓은 hello_world.html 을 보면 정적이다. 그냥 워딩 딱 박혀있는게 끝이다. {% extends 'base.html' %} {% block content %} testing {% endblock %} 이걸 db에서 내용을 받아 동적으로 변할 수 있게 models.py로 부터 시작한다. 1 models.py from django.db import models # Create your models here. class HelloWorld(models.Model): text = models.CharField(max_length=255, null=False) 2 python manage.py makemigrations : 우리가 models.py에다 쓰는 내용을 db와 연동시킬 파이썬 파일로 ..

    [pinterest clone (8)] static 설정과 css분리

    static file 이란? duckracoon.tistory.com/11 [Django Tutorial] Blog 만들기 (10) Vue-Django 연동원리 웹 프로그램에서 css나 img, js 파일들은 static file 혹은 assets file 이라고 한다. django 측면에서 static 파일은 지칭하는 url로 보통 /static/ 이라는 url을 사용한다. /static/이라는.. duckracoon.tistory.com 1 settings.py에 STATIC_ROOT 정의 STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') python manage.py collectstatic 이라는 명령어가 있다. 모든 static 파일들을 한군데로 모아주..

    [pinterest clone (6)] html (include / extends)

    base.html 에서 head를 잘라내고 templates/head.html을 새로 만들었다. head.html base.html {% include 'head.html' %} 1 2 3 {% include 'head.html' %} 이게 include 구문이다. 이런식이면 vue의 component랑 비스무리?하게 쓸 수 있을거 같다. runserver에서 봐도 잘 나타난다. 1 header랑 footer는 계속 재활용할거니까 include로 빼주자. : header.html, footer.html 만들어빼고 include로 넣어주기 {% include 'head.html' %} {% include 'header.html' %} {% include 'footer.html' %} 2 header, fo..