{ Django }

  • 장고 - 로그인 권한 부여방법

    |

    방법1. login_required 클래스 사용

    • login_required 클래스를 사용하여 로그인이 필요한 부분에 @login_required 데코레이터를 사용한다.
      • 경로 : (앱 이름) > views.py
        1
        2
        3
        4
        # login_required 클래스 호출
        from django.contrib.auth.decorators import login_required
        # login_required 데코레이터 사용
        @login_required
  • 장고 - Ajax 이용한 댓글 기능 구현

    |

    댓글 생성하기

    1. 상세 글 조회 페이지에 댓글 목록 추가

    • 원하는 위치에 댓글 목록 부분을 작성한다.
    • 경로 : board > templates > board > document_detail.html
      1
      2
      3
      <div id="docs_comment_list_area">
      {% include 'board/comment_list.html' %}
      </div>
  • 장고 - 개발환경에서 이미지 파일 업로드하는 방법

    |

    1. 미디어 경로 설정

    • 프로젝트 설정에서 media url 과 media root를 설정하고 urlpatterns에 그 경로를 지정한다.
    • 경로 : config(프로젝트 명) > settings.py
      1
      2
      3
      4
      MEDIA_URL = '/media/'
      # MEDIA_URL로 사이트 url 설정
      MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
      # 장고에 media라는 폴더 이름 설정
  • 장고 - 게시판 댓글 기능 적용

    |

    ex) 게시판 프로젝트(board_project)

    1. 특정 페이지에서 댓글 템플릿 연동

    • 댓글 목록의 template 따로 생성 (댓글 부분 페이지네이션 필요하기 때문)
    • 경로 : templates > board > comment_list.html
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      <table class="table table-striped">
      <thead>
      <tr>
      <th colspan="3" class="align-left">댓글 목록</th>
      </tr>
      </thead>
      {% for comment in comments %}
      <tr>
      <td>{{comment.text}}</td>
      <td>{{comment.author.username}}</td>
      <td>{{comment.created}}</td>
      </tr>
      {% endfor %}
      </table>
  • 장고 - SNS 네이버 로그인 기능 학습

    |

    django allauth 기능 사용

    1. django-allauth 설치

    • pip install django-allauth

    2. settings.py 수정

    • 아이디, 이메일, 소셜 로그인 가능하도록 설정
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      AUTHENTICATION_BACKENDS = (
      'django.contrib.auth.backends.ModelBackend',
      'allauth.account.auth_backends.AuthenticationBackend',
      )

      INSTALLED_APP = [
      'django.contrib.sites',
      # 소셜 로그인을 관리하기 위해 기본으로 생기는 앱들
      'allauth',
      'allauth.account',
      'allauth.socialaccount',
      'allauth.socialaccount.providers.naver',

      SITE_ID = 1

      # 로그인 후에 이동할 경로 추가
      LOGIN_REDIRECT_URL = '/'
      ]
  • 장고 - Pythonanywhere 이용한 배포

    |

    1. Github 업로드

    • Github - new repository 생성
    • 해당 repo 주소 복사
    • 경로 : 프로젝트 디렉토리 위치
      • git init
      • git add -A . (git add 하기 전에 .gitignore 폴더 생성하여 git에 올리지 않을 항목 입력)
      • git commit -m ‘message’
      • git remote add origin ‘repo 주소’ (해당 repo주소를 ‘origin’으로 설정)
      • git push -u origin master
  • 장고 - disqus 연동한 댓글 기능 적용

    |

    1. disqus.com 접속

    • 회원가입 및 로그인
    • ‘I want to install isqus in my site’ 클릭
    • Basic > ‘subscribe now’ 클릭
    • 플랫폼 선택(보이지 않는다면, ‘I don’t see~’ 클릭)
    • 최하단 ‘Configure’ 클릭
    • 변경할 것이 특별히 없다면 최하단 ‘Complete Setup’ 클릭



  • 장고 - Signal 학습

    |

    Signal이란?

    • 특정 액션이 발생하면 그 후에 발생하는 이벤트 (django를 포함한 여러 프레임워크에 존재)
    • 저장하기 전/후, 삭제하기 전/후 등 특정 signal이 웹 어플리케이션에 전달
    • 예로, 회원가입 후 ‘축하합니다’ 메일 보낼 때 signal이 사용된다.
    • Signal 종류
      • pre_save : 저장 전, 실행
      • post_save : 저장 후, 실행
      • pre_delete : 삭제 전, 실행
      • post_save : 삭제 후, 실행