일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 인하멘토링
- 우분투비트확인
- 프로그래머스
- 결과를얻는법
- 나는리뷰어다
- 심플소프트웨어
- 2019회고
- CrossAngle
- machinelearning
- 쇠막대기
- texttospeech
- 서구동구예비군훈련장
- 프로그라피
- 타코트론
- 인천남중
- intell
- 로그남기기
- Xangle
- tacotron
- 개발자회고
- graphicdriver
- 노트북덮개
- 신영준
- 놀이동산의슈퍼컴퓨터를작동시켜라
- 서버로그
- 개발자를위한파이썬
- jaypark.dating
- 봉사활동
- 한빛미디어
- 인하대학교
- Today
- Total
목록Django/Django - Form,ModelForm (10)
jc.jang
주제 CBV를 통해 처리하는 다양한 방법에 대해서 살펴본다. 10강 built-in Class Based View를 통한 Form 처리 노트 10강은 CBV의 클래스 족보(?)를 소개하는 듯한 강의였다. 나는 CBV에 대해 자세히 알지 못해 이런게 있구나 하는 정도의 느낌만 받았다. Create 구현의 다양한 예시가 나온다. 가장 익숙한 FBV로 구현된 request.method ... 부터 FormView Class를 상속받아 구현하는 것, CreateView에 form_class 필드 혹은 model 필드 정의하는 것 까지 총 네가지 방법을 소개했다. 11강은 장고에서 API를 만들 때 사용하는 django-rest-framework에 대해 짤막하게 소개했다. DRF의 Serializer가 Form의..
주제 매 Form 요청을 처리하고나서 유저에게 피드백을 주는 방법 중에 하나로 Messages Framework가 있다. Messages Framework를 활용하면 우리가 할 일은 메세지만 지정하는 것이다. '로그인 성공', '저장 완료', '삭제 완료' 등의 메시지를 유저에게 손쉽게 노출 가능하다. 노트 사용자의 요청을 처리 한 후 사용자에게 일회성 알림 메시지를 표시한다. 이를 위해 장고에서는 Message Framework을 사용한다. 모든 메시지는 특정 태그 레벨로 결정이 가능하다. 메시지는 미들웨어 클래스 및 컨텍스트 프로세서를 통해 구현된다. 미들웨어는 장고의 요청/응답 처리에 연결되는 프레임워크다. 장고의 입력 또는 출력을 전체적으로 변경하기 위한 경량의 플러그인 시스템이다. setting..
주제 각 Form 객체는 웹브라우저 유저 노출을 위해 HTML 포맷으로 표현되어야한다. 이를 Render라 한다. 그런데 장고의 기본 Renderer는 조금 어글리하여 커스텀하는 방법에 대해 알아보자. 노트 myapp/models.py class Post(models.Model): title = models.CharField(max_length=100, validators=[MinLengthValidator(3)], help_text='글 제목입니다. 100자 이내로 입력해주세요.') content = models.TextField(help_text='글 내용입니다. 에디터를 이용하여 자유롭게 작성해주세요.') user_agent = models.CharField(max_length=200) create..
주제 위젯은 Form 데이터를 입력 할 때 사용되는 필드별 UI요소이다. 각 Form Field에 디폴트 위젯이 지정되어 있고, 커스텀 지정도 가능하다. 위젯 변경을 통해 사용자 편의성을 높일 수 있다. 노트 Widget 사용자 입력 UI 개발 입력 편의성 향상 백엔드에서 받는 값은 동일함 HTML input 요소의 Django 구현체 Django 기본에서는 HTML만으로 구현 하지만, HTML/CSS/JavaScript 등으로 조합도 가능 각 Form Field마다 기본 Widget이 지정되어 있으며, 커스텀 지정도 지원 위젯을 커스텀 지정하는 방법들 위젯 클래스를 지정 인스턴스를 지정 구글 맵 위젯을 통해 위도/경도 문자열을 받거나 summernote를 활용해 편집 기능을 추가할 수있다. 요약 강의를..
주제 Form의 주요 기능으로서, 사용자로부터 입력값을 검증하는 기능이 있다. 입력값을 검증할 함수를 만들면 로직을 호출하고 사용자에게 노출하는 부분은 장고가 알아서 처리해준다. 노트 Form 유효성 검사가 수행되는 시점 def post_new(request): form_cls = PostForm template_name = 'myapp/post_form.html' success_url = '/' if request.method == 'POST': form = form_cls(request.POST, request.FILES) if form.is_valid(): # 유효성 검사가 수행됩니다. post = form.save() return redirect(post) else: form = form_cls(..
주제 Model 내역대로 Form을 쓰고자 할 때에는 ModelForm을 사용하는 것이 Form을 사용하는 것 보다 간결하다. Form을 사용하지만 거의 모든 코드는 Model 코드를 활용하기 때문에, 주요 코드는 Model을 통해 관리할 수 있다. 노트 ModelForm이란? 장고 Form을 상속 받음 지정된 Model로 부터 필드 정보를 읽어들여, Form Fields를 세팅함 내부적으로 Model Instance를 유지 유효성 검증에 통과한 값들로, 지정 Model Instance로의 저장 지원 ModelForm을 이용한 게시글 생성하기 myapp/models.py from django.db import models from django.core.validators import MinLengthVa..