목록분류 전체보기 (462)
hyeonga_code
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c9Y5v2/btssgsvua4m/zDhVle4TQVmzipPEjL25M1/img.jpg)
- 번역 기능 - 라이브러리 - pip - 'pypi.org'에서 다른 개발자들이 개발해 놓은 코드를 다운 받을 수 있도록 만든 프로그램 - import - 다른 파일의 클래스, 함수, 변수를 가져다 쓰도록 만든 구문 1. 기능 설치 터미널 ===== ''' (mysite) C:\mysite\앱이름> pip install googletrans==4.0.0-rc1 Collecting googletrans==4.0.0-rc1 Using cached googletrans-4.0.0rc1.tar.gz (20 kB) Preparing metadata (setup.py) ... done Collecting httpx==0.13.3 Using cached httpx-0.13.3-py3-none-any.whl (55 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/30tTQ/btskyonpyc6/PrRIzHXDjzK8BcVHkAXskk/img.jpg)
- Import 함수 1. import '파일' ===== 1 2 3 import '파일' '객체1' = '파일'.'클래스'() '객체2' = '파일'.'함수'() cs 2. from '파일' import '클래스', '함수', '변수' - from 다음으로 나오는 '파일' 생략 ===== 1 2 3 from '파일' import '클래스', '함수' '객체1' = '클래스'() '객체2' = '함수'() cs 3. from '파일' import * - '파일'의 모든 것을 포함 4. as '단축어' - 파일, 클래스, 함수, 변수 전부 지정 가능 ===== 1 2 3 import '파일' as '파일단축어' '객체1' = '파일단축어'.Fun() '객체2' = '파일단축어'.'함수'() cs =====..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bl3lTF/btssgsPNNYX/g4GmzZOBE3GVonRKksi0W1/img.jpg)
- 필터 유지 1. 검색 후, 다음 페이지도 검색 내용 유지되어 나오는지 확인 > > 'index.html' 'index.html' ===== 1 2 3 4 5 6 7 8 9 Title Writer Content Search Colored by Color Scripter cs >> 실행 시, 다음 페이지 클릭 시, 페이지 정보만 넘기고 있기 때문에 검색과 다른 전체 데이터 페이지로 넘어간다 >> 모든 버튼 수정해야 함 "&cate={{cate}}&kw={{kw}}" 2. 버튼 기능 수정 > > 'index.html' 'index.html' ===== 1 2 3 Home Next Colored by Color Scripter cs - 리셋버튼 Reset - 데이터 없을 경우 보여지는 값 ===== 1 2 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bVkIXG/btskuOGCLTY/Q1ZuR1dbaZ2rDFdgdVDuNK/img.jpg)
- Path 함수 @ path (요청할 url, 함수) @ path (A, B) - rootURL/A/요청 >> B에서 처리 - 'Page not found' 오류 _ 페이지 매칭에 실패한 것
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/D1vQW/btssf0eVIkC/HpHgYaSkUhHUBXMaMSHn7k/img.jpg)
- 필터 설정 1. 함수 설정 > 'views.py' 'views.py' ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 def index(request): cate = request.GET.get('cate','') kw = request.GET.get('kw','') if kw: if cate == 'sub': b = Board.objects.filter(subject=kw) elif cate == 'wri': b = Board.objects.filter(writer=kw) elif cate == 'con': b = Board.objects.filter(content=kw) else: b = Board.objects.all() pg..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/beZ17V/btsslblYiEF/Ltq7BTDURmbQtLtEGoNEQK/img.jpg)
- 검색 옵션 설정 - 페이징까지 된 코드로 작업 1. 검색 카테고리 설정 > > 'index.html' 'index.html' ===== 1 2 3 4 5 6 7 8 9 Title Writer Content Search Colored by Color Scripter cs >> 123 검색 시 > http://127.0.0.1:8000/board/index/?cate=sub&kw=123 2. 함수 설정 > 'views.py' 'views.py' ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 def index(request): cate = request.GET.get('cate','') kw = request.GET.get('kw','') #_ 추가 pg = request.GET.get(..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/JpGz4/btssc76J2qK/PZ18FgDeZr0SEfBvfHSCq1/img.jpg)
- 페이징 기법까지 적용한 전체 코드 1. > 'settings.py' 'settings.py' ===== 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent SECRET_KEY = 'django-insecure-a)ms^w63$yve_^r#lob$#)ut6#q#@gqz%-cwljv&c9i_$p$h)o' D..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ooHNZ/btssfWwOPsh/4rp1UA38KrIRSiWsob1zpK/img.jpg)
- 페이징 - 레코드가 많을 때 사용 - 1 페이지만 고정으로 띄울 것이 아니므로 페이지 번호도 인자로 받아와야 함 - get 전송 방식 사용 - 노출되어도 상관 없음 - 리소스를 적게 사용 1. 함수 설정 > 'views.py' 'views.py' ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from django.core.paginator import Pageinator def index(request): pg = request.GET.get('page',1) #_ 페이지 인자값이 없을 경우, default값을 1로 지정 b = Board.objects.all() #_ Pagenator(A,B) A레코드를 B단위로 끊어서 페이징 할 것 pag = Paginator(b,10..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b31K8V/btssc6UhQiH/B0RoOF6sQ8dvahRg1eCsZ1/img.jpg)
- 댓글 선택 삭제 1. 상세페이지에 삭제 기능 작성 'detail.html' ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 {{ b.subject }} written by {{b.writer}} {{ b.content }} 홈 {% csrf_token %} 댓글 등록 {% for i in rset %} {{ i.replyer }} {{ i.comment }} X #_ 인자가 두개 넘어가야 함 {% empty %} 댓글을 달아주세요 {% endfor %} Colored by Color Scripter cs 2. 경로 설정 'urls.py' ===== 1 2 3 4 5 6 7 8 9 10 from django.urls import path ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bkZ0aN/btssgqLeqjK/QWFoWT0lqxT9s7ACLBKwE1/img.jpg)
- 댓글 등록 1. 등록 기능 작성 'detail.html' ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 {{ b.subject }} written by {{b.writer}} {{ b.content }} 홈 #_ redirect를 위해서라도 인자가 필요함 {% csrf_token %} 댓글 등록 {% for i in rset %} {{ i.replyer }} {{ i.comment }} {% empty %} 댓글을 달아주세요 {% endfor %} Colored by Color Scripter cs 2. 경로 설정 'urls.py' ===== 1 2 3 4 5 6 7 8 9 from django.urls import path from . i..