backend 21

[Django] admin 페이지 커스텀하기

첫번째 장고 앱 작성하기, part 7 관리자 폼 커스터마이징 수정 폼의 필드를 재정렬해 작동하는 법을 본다. admin.site.register(Question) 를 아래와 같이 수정한다. from django.contrib import admin from .models import Question class QuestionAdmin(admin.ModelAdmin): fields = ['pub_date', 'question_text'] admin.site.register(Question, QuestionAdmin) 모델의 관리자 옵션을 변경해야 할 때마다 모델 어드민 클래스를 만든 다음, admin.site.register()에 두 번째 인수로 전달한다. 수십 개의 필드가 있는 폼에 관해서는 폼을 fi..

[Django] 배경이미지 추가하기

첫번째 장고 앱 작성하기, part 6 앱의 모양과 느낌을 원하는대로 바꿔보세요 특별한 것은 정적 파일을 static 디렉토리에 모아 관리한다는 것 이외는 없다. 정적파일을 저장할 static 리렉토리 디렉토리를 지정함은 네임스페이싱을 통해 파일을 구별짓기를 원한다는 의미이다.(이름이 동일한 다른파일과) {% load static %} static 탬플릿 태그는 정적파일의 절대경로 URL을 생성한다. 배경 이미지 추가하기. images 서브 디렉토리 추가 * { padding: 0; margin: 0; box-sizing: border-box; } ul { font-family: 'Open Sans', sans-serif; font-family: 'Roboto', sans-serif; background..

[Django] 자동화된 test code 짜기. 예제

첫 번째 장고 앱 작성하기, part 5 자동화된 테스트 작성. 자동화된 테스트 소개 자동화된 테스트란 무엇입니까? 테스트는 다양한 수준에서 작동합니다.(4수준) 유닛테스트 : 특정 모델 메서드는 예상대로 값을 반환합니까? E2E테스트 : 사이트에서 사용자 입력 시퀀스가 원하는 결과를 생성합니까? 테스트 자동화는 한 번 작성한 이후에 앱을 변경할 때 수동 테스트를 수행하지 않아도 원래 의도대로 코드가 동작하는지 확인 가능 테스트 자동화는 처음엔 어렵고 복잡할지 모르나 결국 수정과 에러를 적게하는건 테스트코드 과거엔 아키텍처 설계를 통해 시간과 비용을 절약했다면 이제는 테스트코드와 예외처리를 통해 그것이 이루어짐. 테스트를 통해 시간을 절약 특정 시점까지는 제대로 작동하는지 확인하는 테스트로 충분. 하지만..

[Django] Views templates 사용해보기(generic views)

첫 번째 장고 앱 작성하기, part 4 양식 처리 및 코드 축소 Write a minimal form HTML from 추가(question에 대한 radio box) vote 객체 구현 결과지(results) 템플릿 view 결국 {}문법은 jsx문법 처럼 js 코드를 넣기 위한 문법. 제너릭 뷰 사용하기: 적은 코드가 더 좋습니다 일반적인 경우(URL에서 전달된 매개변수에 따라 DB에서 DB를 가져오고 템플릿을 로드하고 렌더링된 템플릿을 리턴하는 경우)를 위해 generic view라는 shortcut을 제공함. URLconf 수정 불필요한 오래된 view 삭제 장고의 generic view를 기반으로 새로운 뷰를 도입. URLconf 수정 패턴 경로 문자열에서 일치하는 패턴 이름들이 questio..

[Django] View단 연결하기

얘는 좀 더 정리할 예정. 첫 번째 장고 앱 작성하기, part 3 view는 장고가 일반적으로 특정 기능과 템플릿을 제공하는 웹 페이지의 종류. 뷰 요청된 페이지의 내용이 담긴 HttpResponse의 반환 Http404같은 예외 발생 둘 중 하나를 하도록 설계. # from django import template from django.http import HttpResponse # from django.template import loader # 숏컷으로 render 사용. template에 context를 채워넣어 표현한 경과를 HttpResponse객체와 함꼐 돌려주는 구문. render from django.shortcuts import render,get_object_or_404 from d..

[Django] DB설치하기 migration 익히기

첫 번째 장고 앱 작성하기, part 2 DB 설치하기 Django는 기본적으로 SQLite를 사용하도록 구성 되어 있다. 기본 제공 데이터베이스고 나중에 실 프로젝트 할때는 좀 더 확장석 있는 데이터 베이스를 사용하는 것이 좋다.DB바인딩 후 DATABASES default항목값 ENGINE, NAME 등 키 값 성정하기.DATABASES SQLite는 DB파일이 필요할 때마다 자동생성되나 타 DB는 DB 생성 따로 해줄 것. my-site/settings.py에서 TIME_ZONE값 설정 할 것. 기본값은 USE_TZ이므로 검색해가서 수동설정할 것. INSTALLED_APPS = [ 'polls.apps.PollsConfig', 'django.contrib.admin', 'django.contrib...

[Django] 프로젝트 생성하기, View, URLconf 만들기.

첫 번째 장고 앱 작성하기, Part 1 목표! 설문조사(Polls) 앱 만들기. 사람들이 설문 내용을 보고 직접 투표할 수 있는 사이트 관리자가 설문을 추가, 변경, 삭제할 수 있는 관리용 사이트. 이슈 발생 저는 User name 이 한글인 관계로 anaconda가 제 디렉토리를 찾지를 못해 pip이 안먹힙니다.. 때문에 django-admin 을 명령어로 찾을 수 없었고 다음과 같은 방법으로 해결했습니다. pip설치 : https://imspear.tistory.com/21 # django-admin 위치 찾기 find / -name django-admin # 기존 상대경로 명령어 대신 django-admin startproject mysite # find로 찾은 절대경로 명령어로 mysite 프로..

[Python] 파이썬의 메모리 관리 : Garbage Collections

Python 의 Garbage Collection GC는 언제 사용되는가? 파이썬은 메모리관리에 reference counting과 garbage collection을 이용한다. reference counting : 참조 횟수가 0이 된 객체를 메모리에서 해제 garbage collection : 참조 횟수가 0에 도달할 순 없지만 reference cycle(순환참조)가 일어날 때. 엄밀히 말하면 reference counting 도 garbage collection의 한 형태. 레퍼런스 카운팅 모든 객체는 참조 당할 때 레퍼런스 카운터를 증가시키고 참조가 없어질 때 카운터를 감소시킨다. 카운터가 0이 되면 객체가 메모리에서 해제된다. sys.getrefcount()로 확인 가능. 순환 참조 간단한 예..

[Python] value값으로 정렬. operator의 itemgetter!

operator 라이브러리의 itemgetter 메서드는 딕셔너리json파일의 키값이 아닌 벨류값으로 정렬을 수행하게 해준다. lambda식으로 표현할 수도 있다. students = [ ("jane", 22, 'A'), ("dave", 32, 'B'), ("sally", 17, 'B'), ] result = sorted(students, key=itemgetter(1)) [('sally', 17, 'B'), ('jane', 22, 'A'), ('dave', 32, 'B')] 인덱스로 소트. students = [ {"name": "jane", "age": 22, "grade": 'A'}, {"name": "dave", "age": 32, "grade": 'B'}, {"name": "sally", "ag..