backend/django 80

4장 장고핵심기능: admin, shell, template system, form, CBV, LOG

1. admin-필드 분리: fieldsets = [] -필드 접기: fieldset = ('Date Information', {'fields':['pub_date'], 'classes':['collapse']}) -ForeignKey: Question 화면에서 Choice 보기 => Inline 클래스 추가class ChoiceInline(admin.StackedInline):# 줄로 나타내고싶으면 TabularInlinemodel=Choiceextra = 2 #기존 데이타 이외의 엑스트라 공백 칸 수=> QuestionAdmin 클래스에 inlines 변수 추가...inlines = [ChoiceInline]... -list에 보여주는 컬럼 지정list_display = (), # 튜플 형식 (뒤에 ..

backend/django 2017.03.09

3장, 장고 웹 프레임워크: MTV(Moedl, Template, View)

3장 장고프레임워크 *장고의 애플리케이션 개발 방식-MTV 패턴클라이언트의 요청을 받으면 URLconf 이용하여 URL 분석=> URL 분석 결과를 바탕으로 뷰 결정=> 로직 실행 후 DB 처리가 필요하면 모델을 통해 처리, 결과 반환=> 템플릿 사용하여 전송할 HTML 파일 생성=> 최종 결과로 HTML 파일 응답 *Model: DB 설계장고는 ORM 방식을 사용하여 DB에 쉽게 엑세스 가능하나의 모델 클라스 => 테이블 (appname_classname과 가타이 테이블 생성)모델 클라스의 속성 => 컬럼 *템플릿-.html 확장자, 장고의 템플릿 시스템 문법에 맞춰 장성-적절한 디렉토리에 위치 필요=> TEMPLATE_DIRS 및 INSTALLED_APPS에서 지정한 디렉토리 검색 (settings...

backend/django 2017.03.08

기본편 1장 웹프로그램의 이해, 2장 파이썬 웹 표준 라이브러리

1장 웹프로그램의 이해, 2장 파이썬웹 표준 라이브러리 2장.파이썬 웹 표준 라이브러리* 웹 라이브러리 구성-웹 서버 프로그래밍 + 웹 클라이언트 라이브러리 웹 클라이언트 라이브러리-urlparse 모듈from urllib.parse import urlparseresult = urlparse('http://www.python.org:80/guido/python.html;philosophy?overall=3#n10')ParseResult(scheme='http', netloc='www.python.org:80', path='/guido/python.html', params='philosophy', query='overall=3', fragment='n10') -urllib2 모듈 => 파이썬에서는 urll..

backend/django 2017.03.08

실전편- Blog 앱 만들기

1. 애플리케이션 설계 1) UI 설계post_all.html: 본문 제목(-> post_detail.html), Post.title, Post.modify_date, Post.description, 페이지 이동post_detail.html: Post.title, 포스트 이동,(?), Post.modify_data, Post.content 2) 테이블 설계id: integer/ PK, Auto Icrement, 기본 키title: CharField(50) => 포스트 제목slug: SlugField, Unique => 포스트 제목 별칭(??)description: CharField(100), Blank => 포스트 내용 한줄설명content: TextField => 포스트 내용create_data: Da..

backend/django 2017.03.06

장고 개발 기본, Bookmark 앱 만들기

*view 만들기- CBV의 제네릭 뷰?http://ruaa.me/django-view/-DetailView, Listview: 장고에서 지정해주는 디폴트값 2가지1. 컨텍스트 변수로 LV는 object_list, DV는 object 사용 2. 템플릿 파일을 LV는 모델명소문자_list.html로 ,DB는 모델명소문자_detail.html로 지정해주는 것. Bookmark 페이지 만들기1. 뼈대: startproject, settings.py, migrate, supeuser, startapp, settings.py (앱등록)-settings; DB, 템플릿 설정[os.path.join(BASE_DIR, 'templates')]-안하면 어떻게 되는지 보자,=> 안하면 안되는듯. 기본 'teplates'를..

backend/django 2017.03.05

django tutorial: advanced- 앱 재사용하기

https://docs.djangoproject.com/en/1.10/intro/reusable-apps/ 우리는 만들어진 poll 앱을 standalone 파이썬 패키지로 만들어서 다른 프로젝트에 쓸 수 있게 할 것이다. **Reusability matters 웹 애플리케이션을 디자인하고 만들고 테스트하고 유지하는 것은 많은 노력이 필요하다.많은 파이썬, 장고 프로젝트는 같은 문제를 공유한다.몇몇을 저장하고 다시 사용하면 좋지 않을까? 'Reusability' is the way of life in PythonPypi는 파이썬 프로그램에서 사용할 수 있는 방대한 파이썬 패키지들을 제공한다.Django Packages(https://djangopackages.org/)에는 프로젝트에 맞는 다양한 재사용 ..

backend/django 2017.03.04

django tutorial: 테스트 만들기 에러(python manage.py test polls)

테스트 만들기에서 테스트 실패: 해결 요약: postgres에서 ALTER USER user_id CREATEDB; 로 DB 권한 부여하기 $python manage.py test polls 명령어로 테스트를 하면 django.core.exceptions.ImproperlyConfigured: Error loading psycopg2 module: No module named psycopg2 라고 에러가 뜸 해결1:: http://stackoverflow.com/questions/12728004/error-no-module-named-psycopg2-extensions #설치가 안되있어서 (virtualenv 말고 기본 pip로) 가상환경을 해지한 후 pip install psycopg2로 재설치=> 그..

backend/django 2017.03.03

django tutorial: 어드민 사이트 변경- customizing admin (part7)

장고의 자동 생성된 admin의 커스터마이징을 다뤄 볼 것이다. Customize the admin formadmin.site.register(Question)으로 Question 모델을 등록함으로써 default form이 나타났다. => admin의 look과 work를 커스터마이징하는 경우에는 원하는 옵션을 얘기해주면 됨 admin.site.register(Question) 라인을 재배치polls/admin.py 파일을 열어서------from django.contrib import admin from .models import Question class QuestionAdmin(admin.ModelAdmin): fields = ['pub_date', 'question_text'] admin.sit..

backend/django 2017.03.03

django tutorial: static files- 스타일시트, css, stylesheet (part 6)

서버에서 만든 HTML 이외에도 이미지, 자바스크립트, CSS와 같은 추가적인 파일이 필요=> 이번 튜토리얼에서는 stylesheet나 이미지를 poll 앱에 추가해볼 것=> 장고에서는 이런 파일들을 "static files"라고 부른다. 작은 프로젝트에서는 이런 static file들을 웹서버가 찾을 수 있는 곳에 두면 되기 때문에 쉽게 처리 가능=> 하지만 큰 프로젝트, 특히 여러개의 app들이 있는 것들은 복잡해질 수 있음 그래서 django.contrib.staticfiles가 있다=> 각각의 앱에서 static 파일들을 => 쉽게 제공 가능한 하나의 장소로 모아줌 **Customize your app’s look and feel우선, polls 폴더 안에 'static'이라는 폴더를 만든다=> ..

backend/django 2017.03.03

django tutorial: Testing(테스팅) (part5)

이제부터 우리는 만들어진 poll 앱에 대한 자동화된 테스트를 만들 것이다. **Introducing automated testing *What are automated tests?테스트는 코드의 동작을 체크하기 위한 간단한 routine이다자동화된 테스트는 시스템상에서 테스트 작업이 진행되는 것! 한 번 설정 해 놓으면 이후게 지속적으로 작업할 수 있다. *Why you need to create tests당신은 아마도 파이썬/장고에 대해 한참 배울 게 남았는데 왜 테스트를 하는지 의문이 들것이다. poll 애플리케이션은 상당히 괜찮고, 테스트를 만드는게 앱 작업을 더 좋게 만들어 줄 것 같지도 않다.만일 장고 프로그래밍에서 polls 애플리케이션같은 것만 만들거라면 테스트가 필요 없지만, 그게 아니라..

backend/django 2017.03.03