게시판 페이징 기능의 필요성 게시판의 글 개수가 많아질 경우 필요함 한 페이지에 10개만 보여주는 형식으로 만듬 데이터 불리기 터미널에서 cd mysite manage.py shell 로 터미널 실행 그 후 아래 코드 입력 from pybo.models import Question from django.utils import timezone for i in range(300): q = Question(subject = "질문글 [%03d]의 제목 입니다" % i, content = "내용은 생략" , create_date = timezone.now()) q.save() views.py의 index함수 수정 from django.core.paginator import Paginator def index(r..
장고의 코드를 다 아는 것도 중요하지만 흐름을 아는 것이 가장 중요하다 1. urls 를 통해 입력이 들어온다 urls.py 파일에서 해당 url로의 입력이 들어올 경우에 어떻게 넘겨줄 것인지 지정해 준다. 2. views를 관리 views.py를 통해 url을 타고 들어온 사용자에게 보이는 영역을 어떻게 처리할 것인지 정해준다. DB에 저장하는 파트를 여기서 작성하면 된다. render를 통해 html 파일로 값을 넘겨줄 수 있다. redirect에 값을 넘겨줘서 이를 받아 호출하면 여러 페이지 반복 연결이 가능해진다. 3. views를 통해 연결된 HTML 코드를 보여준다. css, js를 link, script로 연결받을 수 있다. extends , include를 통해 반복되는 코드의 재사용성을 ..
static 폴더 지정 mysite밑에 static 폴더를 생성한 후 config 폴더 밑의 settings.py로 이동해 static_dirs 설정을 추가해 준다. BootStrap 다운로드 구글창에 bootstrap 다운로드를 검색한 후 아래 All release를 클릭한다. stable 한 최신 버전이 이 글을 작성하는 당시에는 v5.2였음. compiled 된 CSS와 JS를 다운로드한다. 다운 이후 압축을 풀고 bootstrap.min.css와 bootstrap.min.js를 static 폴더에 붙여 넣어 준다. question_list.html파일 수정 bootstrap.min.css 파일 적용을 위해 link를 걸어준다. 그 후 css를 적용하기 위해 HTML을 수정한다. 원래 코드 {% i..
커스텀 액션의 사용 방법 자바의 for문과 java.util.StringTokenizer 클래스의 기능을 합친 것 같은 기능을 제공한다. 이 액션에는 items, delims, var라는 3개의 어트리뷰트를 사용해야 한다. items에는 토큰을 포함하는 문자열을, delims 에는 토큰 분리에 사용할 구획 문자를 , var에는 분리된 토큰을 대입한 변수의 이름을 써야 한다. ${pet} 토큰의 구획 문자 delims에 한 종류 이상의 문자를 지정할 수 있다. EX) delims = "*/-" forTokens 사용 예시 사자의 생일잔치에 누가 왔을까요? ${guests } ${animal} 커스텀 액션의 사용 방법 자바의 try 문과 비슷한 기능을 한다. 커스텀 액션의 시작 태그와 끝 태그 사이에서 에러..
JSTL 이란 JSP 표준 태그 라이브러리의 약자(JSP Standard Tag Library)이다. JSP 페이지를 작성할 때 유용하게 사용할 수 있는 여러 가지 커스텀 액션과 함수가 포함되어 있는 라이브러리이다. JSTL을 가지고 할 수 있는 일 간단한 프로그램 로직의 구사(자바의 for, if, 변수 선언 등의 로직) 다른 JSP 페이지 호출(, ) 날짜, 시간, 숫자의 포맷 JSP 페이지 하나를 가지고 여러 가지 언어의 웹 페이지 생성 데이터베이스로의 입력, 수정, 삭제, 조회 XML 문서의 처리 문자열을 처리하는 함수 호출 문자열을 처리하는 함수 호출을 제외한 나머지 기능들은 모두 커스텀 액션 형태로 제공된다. JSTL을 구성하는 작은 라이브러리들 코어 라이브러리 사용하기 커스텀 액션의 사용 방..
http://127.0.0.1:8000/admin/ 접속 장고는 개발 편의를 위해 Admin을 제공한다. 계정 생성 터미널창에 아래 명령어 실행 후 id password 지정 python manage.py createsuperuser 접속 화면 유저 생성 확인 관리자 페이지에 Question모델 데이터 추가 admin.py에 코드 추가 from django.contrib import admin from .models import Question # Register your models here. admin.site.register(Question) 관리자 페이지에서 Question에 접근할 수 있다. 데이터 추가도 직접 가능한 편리한 기능을 장고에서는 제공한다. 질문 상세 기능 구현하기 vies.py 파..
주소와 화면을 연결하는 URL과 뷰 pybo 앱 생성하기 터미널에서 cd mysite로 이동하여 아래 명령어 실행하여 pybo 생성 django-admin startapp pybo config/urls.py 수정하기 from django.contrib import admin from django.urls import path from pybo import views urlpatterns = [ path('admin/', admin.site.urls), path('pybo/', views.index) ] pybo/views.py 작성하기 pybo 밑의 views파일에 접근하여 index함수를 참조하는 코드이다. return문에 사용된 HttpResponse는 페이지 요청에 대한 응답을 할 때 사용하는 장고..
// 점프 투 장고 책을 정리한 내용입니다. 장고의 장점 튼튼한 웹 프레임워크이다. 기본적으로 보안 공격을 막아준다 웹 프로그램을 쉽고 빠르게 만들어 주는 웹 프레임워크다 여러 기능이 준비되어 있다. ORM(프로그래밍 언어로 DB 데이터 저장 가능) 과 같은 필요로 하는 웹 프로그램 개발을 위한 도구와 기능이 대부분 준비되어 있다. 장고 설치 저는 python3.8.10 버전으로 pycharm(유료버전)의 가상환경으로 사용하였습니다. 터미널에 아래 명령어 입력. pip install django 장고 설정을 잡아주기 위해 터미널에 아래 명령어 입력 장고는 config 밑의 settings.py 파일에서 세팅을 잡아준다. django-admin startproject config . 서버 실행 명령 pyt..
JDBC : Java DataBase Connectivity Java에서 DBMS의 종류와 관계없이 데이터베이스를 조작하기 위한 API를 의미 JDBC를 간단하게 요약하면 메서드 호출용 SQL 인터페이스라고 표현할 수 있음. JDBC 드라이버란? 다양한 DBMS 제조사들은 본사에서 개발한 DBMS를 Sun 사의 Java 프로그램과 연동할 수 있도록 기술을 지원하는 것을 의미 JDBC는 MySQL 설치과정에서 이미 설치하였으므로 따로 설치할 필요는 없지만 JDBC 드라이버가 어느 폴더에 저장되어 있는지에 대해서는 알고 있어야 함. JDBC 드라이버 연동 MySQL 설치 과정에서 JDBC 드라이버도 설치하였는데 C:\Program Files (x82)\MySQL\Connector J 8.0 폴더 안에 있는 ..
데이터베이스란? 데이터베이스 여러 살마에 의해 특정 분야에서 사용될 목적으로 통합하여 관리되는 데이터의 집합체 다수의 사용자가 사용하는 데이터들의 공유와 운영을 위해 저장해 놓은 공간으로 자료항목의 중복성을 없애 줌 자료를 구조화하여 저장함으로써 데이터 검색과 업데이트의 효율성을 높여 줌 DBMS 데이터베이스 관리 시스템(DBMS)이란 데이터베이스를 직접 응용 프로그램들이 조작하는 것이 아니라 데이터베이스를 조작하는 별도의 소프트웨어를 의미하며 앞으로 사용하게 될 MySQL 또한 DBMS의 한 종류임 MySQL RDBMS 중 하나로 오픈 소스 라이브러리 정책에 따라 배포됨 영리목적일 경우 라이선스 구매 필요 MySQL은 오픈 소스이며 다중 사용자와 다중 스레드를 제공하며 다음과 같은 장점을 제공 MySQ..