본문 바로가기

전체 글

[Django] 게시판 페이지 네비게이션(page navigation) [Django] 게시판 페이지 네비게이션(page navigation) 바로 가져다 쓰는 파이썬 코드 장고를 이용한 게시판 생성시 페이지 네비게이션 처리 방법을 알아 본다 1. VIEW (views.py) 장고에서 제공하는 Paginator를 사용하면 간단히 작성할 수 있다. from django.core.paginator import Paginator # Create your views here. def board_list(request): all_boards = Board.objects.all().order_by('-id') # 게시물 전체를 얻고 page = request.GET.get('p', 1) # 현재 네비게이션 중인 페이지 번호를 얻는다. paginator = Paginator(all_bo.. 더보기
[Django] -Start-Code : 게시판 만들기 바로 가져다 쓰기 위한 스타팅 코드 파이썬과 장고+bootstarap을 이용한 게시판 만들기 샘플 코드 1. board/templates/base.html {% block contents %} {% endblock %} 2. board/templates/board_list.html {% extends "base.html" %} {% block contents %} # 제목 아이디 일시 {% for board in boards %} {{ board.id }} {{ board.title }} {{ board.writer }} {{ board.registered_dttm }} {% endfor %} 글쓰기 {% endblock %} 3. board/models.py from django.db import mo.. 더보기
[Django] Template HTML 상속 (block - extends) 장고에서는 템플릿내 공통 부분에 대해 공통 모듈을 만들고 이를 상속하여 사용할 수 있다. 공통 모듈내에서 상속 받을 블럭이 들어갈 부분에 대해서 {% block blockname %} {% endblock %} 로 지정해 주고 이를 상속받은 모듈에서는 {% extend "공통모듈.html" %} {% block blockname %} ..... 소스 {% endblock %} 로 작성하면 공통 모듈을 상속 받아서 블럭(block)으로 처리 가능하다 사례) common.html {% block contents %} {% endblock %} login.html {% extends "common.html" %} {% block contents %} 로그인 {{ error }} {% csrf_token %} .. 더보기
[Django] Form 필드의 기본 유효성 오류 메시지 변경하기 [Django] Form 필드의 기본 유효성 오류 메시지 변경하기 Form에 입력필드 정의시에 error_messages 딕셔너리에 "required" 요소로 추가하면 된다.error_messages={'required' : '비밀번호를 입력해 주세요'} class LoginForm(forms.Form): username = forms.CharField(max_length=32, label="사용자 이름", error_messages={ 'required': '아이디를 입력해 주세요'}) password = forms.CharField(widget=forms.PasswordInput( ), label="비밀번호", error_messages={'required': '비밀번호를 입력해 주세요'}) 더보기
[Django] 장고에서 패스워드 체크 함수 check_password 사용하기 [Django] 장고에서 패스워드 체크 함수 check_password 사용하기 Form 클래스로 부터 로그인등을 위해서 암호화된 비밀번호를 체크하기 위해서는 장고에서 제공하는 check_password 함수를 이용하도록 한다.add_error로 form.errors의 폼필드명의 오류를 추가해 줄 수 있다. from django.http import HttpResponsefrom django.contrib.auth.hashers import check_password if username and password : fcuser = Fcuser.objects.get(username = username) if not check_password(password, Fcuser.username): self.add.. 더보기
[Django] HTML 템플릿내에서 Form Class의 is_valid호출시 오류를 받아 처리하기 [Django] HTML 템플릿내에서 Form Class의 is_valid호출시 오류를 받아 처리하기 views.py에서 Form Class를 호출하고 결과를 적절히 처리하기Django의 From 클래스에서 각 필드의 입력값 요성을 검토하기 위한 함수 제공form.is_valid() views.py (VIEW) def login(request): if request.method == 'POST': form = LoginForm(request.POST) if form.is_valid(): # Django의 Form 클래스에서 제공하는 유효성 체크 함수 return redirect('/') else: form = LoginForm() return render(request, 'login.html', {'fo.. 더보기
[Django] Form-Template 연동시 폼필드 커스터마이징 하기 참고 : form-Template 연동 매커니즘FORM 사용 사례를 Login Form을 예로 들어 작성해 보자FORM을 이용하는 다른 기능들도 아래와 같은 구조를 활용하여 변경하여 사용하면 된다. * LoginForm Class class LoginForm(forms.Form): username = forms.CharField(max_length=32) password = forms.CharField() 1. 기본 FORM 전달 {{ form }} 2. 폼내 필드 표시 커스터마이징 : {% for field in form %} ... {% endfor %} {% for field in form %} {% endfor %} 3. 폼필드 상세정보 반영하기 [forms.py] from django impor.. 더보기
[Django] Form 사용 - 매커니즘 [Django] Form 사용 - 매커니즘 Django를 이용하여 다음과 같은 Template의 HTML파일내 포함된 FORM 구성을 DJango가 제공하는 Form 클래스를 상속 하여 클래스로 대체 시킬 수 있다. 더보기