본문 바로가기

(87)
jsp3 - form 처리 서블릿에서 하나에 값이 들어오는 경우 String getParameter(파라미터 이름) 을 쓴다. 체크박스와 같은 여러개의 값이 들어오는 경우 String[] getParameterValues(파라미터 이름) 을 쓴다.
jsp2 -서블릿 소개 A>경로(request path ) request path = 크롬에서 도메인입력창에 입력하는 요청 이클립스 기준 추가 설정을 안했을 때 localhost/프로젝트명 이름/jsp 파일 일때 프로젝트 이름 은 이클립스 상 WebContent이다. WebContent에 하위 디렉토리가 있으면 localhost/프로젝트명 이름/하위 디렉 토리/jsp 파일 이 된다. B>서블릿 요청 방식 주로 쓰는 건 크게 두가지 get 과 post 방식이다. (http 프로토콜은 이 외에도 종류는 많다.) C> form 태그와 request pattern form 태그의 action 속성을 request pattern 이라고 한다. 만약 get방식으로 요청을 한다면 도메인창에서 action속성값?a=a&b=b 이런식의 패턴이..
jsp - 1 웹 프로그래밍 개요 A>웹 서버 와 클라이언트 간의 관계 클라이언트가 도메인을 입력하면 도메인에 대한 페이지를 보여달라고 웹 서버에 요청(request) 웹 서버는 요청을 분석 웹 서버는 요청에 대해 응답(response)을 해 클라이언트로 보냄 웹 브라우저는 html등의 정보를 parsing을 해서 렌더링 웹 애플리케이션 구조를 보자면 대부분 3계층으로 나뉜다. 클라이언트 웹서버(= 웹 컨테이너) 웹 애플리케이션 , 데이터 베이스 B>jsp 동적인 웹 페이지를 만들기 위한 스크립트 언어 1.장점 - 자바와 호환 = 강력한 이식성 - jstl, 커스텀 태그 등을 이용한 개발 용이성 2.특징 서블릿 형태인 클래스 파일로 바뀐다. C>서블릿 - 웹 서버상에서 실행되는 자바 클래스 파일 - javax.servlet.Servlet..
테스트 하기 docs.djangoproject.com/ko/3.1/intro/tutorial05/ 첫 번째 장고 앱 작성하기, part 5 | Django 문서 | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com 를 참고하였다. 쉘 환경에서 테스트 실행 python manage.py test polls 뷰 테스트 >>>from django.test.utils import setup_test_environment >>> setup_test_environment() >>> fro..
배포시 주의점 1. secrey key txt로 따로 저장하자 SECRET_KEY = os.environ['SECRET_KEY'] 혹은 with open(os.path.join(BASE_DIR,'웹 디렉토리','secret_key.txt')) as f: SECRET_KEY =f.read().strip() 2.DEBUG false 로 하자, 노출되면 안되는 항목이다. 그리고 이 경우 ALLOWED_HOSTS를 지정하자 DEBUG = true로 할 경우에는 자동으로 ALLOWED_HOSTS가 로컬호스트가 된다. 3.STATIC_ROOT STATIC_ROOT =os.path.join(BASE_DIR,'웹 디렉토리','satatic) 하고 정적파일 지정된 디렉토리에 모으기 !!주의 STATICFILES_DIRS 에 STATI..
장고 프로젝트 순서2 - 뷰 클래스형 뷰로 정의 1.인덱스 페이지 인덱스 페이지는 TemplateView 를 상속해서 구현하면 편하다 오버라이딩이기 때문에 template_name 변수를 지정해야한다. 템플릿 시스템으로 넘겨줄 컨텍스트 변수가 있으면 def get_context_data() 재정의 한다. 변수는 context= super().get_context_data() 재정의 이때 super() 꼭 쓰자 return도 필수이다. 2.리스트뷰 페이지 ListView를 상속받는다. model 필드만 재정의하면 된다. 디폴트 속성이 있는데 컨텍스트 변수로 object_list를 사용하고 템플릿 파일을 소문자모델명_list.html 로 사용한다. 예시 class BookList(ListView): model = Book #Book에 ..
장고 프로젝트 순서 기본1 -모델 MTV 에서 모델 models.py에서 1.테이블 정의 class 테이블명(models.Model): 칼럼1 = models.필드 제공 함수() 칼럼2 = models.ManyToManyField('관계테이블') #N:N 관계에 있을때의 필드 칼럼3 = models.ForeignKey('FK',on_delete=models.CASCADE) #on_delete는 필수지정 def __str(self): return self.표시하고 싶은 테이블명 2. admin.py에 등록 터미널에 python manage.py createsuperuser 로 admin을 만들고 admin.py에 admin.site.register(테이블) 3.URLconf 등록 프로젝트 Urls.py 에 어플리케이션 url 등록
제네릭 뷰 제네릭 뷰는 클래스형 뷰이다. 제네릭뷰란 장고가 제공하는 공통된 로직의 뷰이다. 제네릭 뷰를 상속해서 클래스형 뷰를 만들때가 많다. 분류 1.Base View : 뷰 클래스를 생성하고, 다른 제네릭뷰의 부모 클래스 제공, 기본 제네릭 뷰 2.Generic Display View : 객체의 리스트나 특정 객체의 정보 제공 3.Generic Edit View : 객체 생성, 수정, 삭제 4.Generic Date View : 날짜 객체의 연/월/일 페이지 제공 클래스형 뷰에서의 폼 처리 과정 1.최초의 GET : 사용자에게 폼을 처음으로 보여줌 2.유효한 데이터를 가진 POST :데이터를 처리함, 주로 리다이렉트 3.유효하지 않은 데이터를 가진 POST: 보통은 에러메시지 출력+ 폼 재출력