Django in Eclipse
Django를 Eclipse를 이용하여 구동시킬때, 프레임워크 환경설정
Eclipse : Help -> Eclipse Marketplace에서 pydev 검색 후 설치
pydev 검색
cmd에서 파이썬 설치 목록 확인 (설치된 화면임)
위의 화면과 다르다면 pip install Django를 이용해 Django를 설치
window>preferences
pydev > interpreters > python interpreter 선택후
다운받은 파이썬 파일 지정
(python 설치 www.python.org)
Eclipse에서 pydev를 이용하여 Django 사용하기
1. 프로젝트 생성
open perspective 에서 pydev 선택
file > new > other > pydev > pyDev Django Project 선택, 프로젝트 생성
< cmd에서 프로젝트 생성 방법
( documentation > tutorials > part1 문서 참조)
$django-admin startproject mysite
www.djangoproject.com >
2. 어플리케이션 생성
==> 하나의 프로젝트에 여러 어플리케이션 생성 가능
예> 하나의 11번지 쇼핑몰에 여러 기능(회원관리,상품관리) 생성 가능
< cmd에서 app 생성방법
$ python manage.py startapp polls >
3. 서버 실행
run as > pydev Django
* 작업순서
1. 프로젝트 생성
2. 어플리케이션 생성 예> myapp
3. settings.py 에 myapp 등록
4. 브라우저 통해서 url입력후 요청
http://localhost:8000/update
http://localhost:8000/delete
프로로젝트의 urls.py에서 요청한 url분석해서 실제 처리하는 로직에 전달하는 역할
(요청과 로직 mapping)
** 컴포넌트 => 웹서버에서 개발자가 작성할 수 있는 파일
1) 정적 컴포넌트
-html
2) 동적 컴포넌트
-Java 기반 : jsp, servlet
-MS 기반 : asp, asp.net, c#
-Python 기반 : Django
==> 프로그램이 실행된다. 결과는 html
* 웹 어플리케이션 개발을 위한 패턴
==> 대표적인 MVC 패턴
Model View Controller
파이썬 MTV ( = Model, view, controller)
MTV = Models Templates Views
Urls : url 주소에 클라이언트의 request와 views의 기능(함수) mapping
Views (=controller) : 함수 생성
클라이언트의 요청 : WSGIRequest
서버의 응답 : HttpResponse(“html 직접 생성”)
Render(request, “Templates의 html 호출”)
Templates : 함수의 결과물(Html)을 갖고 있음
Model : DB와 연동
서버 내
View (=controller) : {key:value}
Template : view의 key값을 이용해서 value를 html에 변수로써 접근, 가져올 수 있다.
· Forward vs Redirect
Forward : 클라이언트의 요청에 의해 view에서 templates에 해당 html 요청,
url에 변경이 없다.
Redirect : 클라이언트에서 요청을 한 번 보내면 (sumit과 같은) view에서 확인 response를 보내고 클라이언트는 자기 스스로 (유저의 요청 x) 다시 요청을 보내고 view에서는 templates에 sumit으로 인해 교체된 html을 보내준다.
HttpResponseRedirect
Url 변경 존재
클라이언트에 서버 contents 저장 = Cookies ==> 자동 로그인(아이디 저장), 이전에 봤던 상품 이미지 등
1) 문자열만 저장가능
2) time-out 가능 (일정 시간 내에만 data 사용)
3) Browser의 memory에 저장
4) 클라이언트에 파일로 저장 : 영구적
단점 : 클라이언트에서 쿠키 사용을 제한할 수 있다.
서버에 클라이언트의 상태 저장 = Session ==> 로그인, 장바구니
1) All data 가능
2) time-out 가능 (일정 시간 내에만 data 사용)
3) 클라이언트와 연결이 끊어지면 정보 휘발
4) 서버 내의 모든 tamplates에 정보 적용 가능.
세션
클라이언트에서 서버에 request하면서 정보 삽입. (session)
서버에서 해당 정보(session)를 계속 공유해서 사용
쿠키
클라이언트에서 요청, 서버에서 공유될 파일을 클라이언트에 요청을 담아서 response
서버의 요청을 받은 이후부터는 해당 정보(cookie)를 request에 담아서 계속 가져가서 정보 제공.
Models
SQLite3 연동 방법
프로젝트 이름에서 show in ==> terminal
python manage.py makemigrations [app이름] <<-- 테이블 준비
python manage.py makemigrations <<-- 테이블 실제 반영
댓글