본문 바로가기

전체 글

(29)
django 기초 - bootstrap을 이용한 사이트 만들기 : 9. 검색 기능(ajax) - 게시판의 게시글 목록에서 검색하여 원하는 게시물을 찾을 수 있도록 하자. - 화면은 그대로, 이벤트 발생시에도 reloading 없이 특정 영역(게시판 글 목록)의 데이터를 변경하는 Ajax 통신방식을 사용한다. 이때, 과 태그가 아닌 script로 서버와 통신을 해야한다. 1. 버튼 만들기 New Board 제목 내용 검색 - 태그를 사용하여 원하는 카테고리를 선택 가능 - 으로 검색 내용을 입력 받고, 버튼을 누르면 서버에 전송 2. Script - Ajax 비동기 통신 $(document).ready(function(){ $('#search_btn').click(function(){ $.ajax({ url : "../search_form/", type : 'post' , data : { 'csr..
django 기초 - bootstrap을 이용한 사이트 만들기 : 8. 글 수정, 삭제 - 글 내용 페이지에서 접속한 사용자가 글쓴이라면 글의 수정과 삭제가 가능하도록 한다. - 삭제와 수정버튼을 만들고 기능을 연결 1. 버튼 만들기 게시글 목록 {% if session_user_name == orm_obj.writer %} 수정 삭제 {% endif %} - 기존에 있던 게시글 목록 버튼 이외에 수정, 삭제 버튼을 추가 생성 - views의 함수에서 넘겨받은 세션데이터와 게시글 데이터를 사용해서 사용자 식별 - 현재 접속자가 글쓴이와 같다면 수정과 삭제버튼을 활성화 2. 삭제 버튼 활성화 - 나 태그가 아니기 때문에 script를 통해서 action을 제어해야 한다. - delete 버튼을 눌렀을 때, id='id'로 정의된 값을 찾아 get 방식으로 서버로 전송한다. - read.htm..
django 기초 - bootstrap을 이용한 사이트 만들기 : 7. 글 목록, 게시글 확인 - 데이터베이스 (Bbs 클래스)에 저장된 데이터를 가져와 게시판에 글 목록 출력 - 글 목록에서 제목을 클릭하면 해당 글 페이지로 이동 1. 데이터베이스에 저장된 게시글 데이터 - views.py 에서 데이터베이스와 객체를 매핑시킨다. - modelClass.objects.all() 은 DBMS 의 SQL문 select * from table 과 같다. 즉 테이블에 저장 되어있는 모든데이터를 가지고 온다. - 가져온 데이터의 타입은 QuerySet으로 저장된 데이터가 묶여있는것을 확인할 수 있다. # views.py def list(request): orm_obj = Bbs.objects.all() print(' ------- orm_obj.all() type :', type(orm_obj)) prin..
django 기초 - bootstrap을 이용한 사이트 만들기 : 6. 게시판 글 등록 - 게시판에서 newBtn 버튼을 누르면 게시글 작성 페이지로 이동 - 게시글을 작성하고 submit 버튼을 누르면 게시글이 데이터베이스(model)에 저장 - 작성 완료되면 다시 게시판 목록으로 돌아옴 - 저장된 글을 게시판 목록에 띄우는건 다음 글로 0. DB 테이블 생성 (models 클래스 정의) - 작성된 게시글을 저장할 데이터 베이스 테이블을 정의 - models(클래스 정의) - > admin(클래스 등록) -> makemigrations, migrate 순으로 진행 - 깜빡하고 게시판 만들다가 되돌아왔다... # models.py class Bbs(models.Model): title = models.CharField(max_length=30) writer = models.CharField..
django 기초 - bootstrap을 이용한 사이트 만들기 : 5. 로그아웃과 로그인세션 - 로그인 세션을 유지해서 홈 화면에서 로그인한 유저의 이름을 000부분에 표시한다. - signout 버튼을 눌렀을 때, 로그아웃하고 로그인 페이지로 이동, 이때는 /main/ url을 입력해도 로그인 페이지로 이동된다. (4번 글) 1. 이름표시 - 해당 부분은 header.html에 표시되는 내용이다. - 이름이 OOO이라고 되어있으니까 OOO을 검색하면 어느 부분에 있는지 알 수 있다. - views의 index함수에서 context로 session_user_name을 넘겨받았다. - {{ session_user_nam }} 으로 바꿔준다. # views.py def index(request): if request.session.get('user_name'): print('------ user i..
django 기초 - bootstrap을 이용한 사이트 만들기 : 4. 가입 페이지 - 만들어진 로그인 창 하단에 보면 Register a new membership이 있다. 이것을 활성화 하기 위해선... 1. login.html 코드에서 문구와 연결될 url을 입력한다. 2. urls.py 에서 url을 등록한다. 3. html 에서 데이터를 전송 받을 수 있도록 get | post 방식과 id를 확인한다. 4. 페이지에서 전송 받은 데이터를 views에서 처리한다. -> DB와 매핑된 class 객체를 생성한다. ( 앞에서 만든 BbsUsers) -> 전송받은 데이터를 생성된 객체에 입력하고 save() 해준다 # ORM으로 객체와 테이블이 매핑되어 있기 때문에 save() 메서드만으로 데이터베이스의 데이터를 갱신할 수 있다. - 가입 버튼과 html 연결 ( 위의 1 ~ 2) #..
django 기초 - bootstrap을 이용한 사이트 만들기 : 3. 로그인 페이지 만들기 1. 로그인창 연결하기 - 먼저 간단하게 urls - views - html을 정의해준다. # views.py def index(request): # return render(request, 'bbs/home.html') return render(request, 'bbs/login.html') - 첫번째 창을 불러오는 index함수를 수정하였다. - 처음 bbs app에 접속하게 되면, login html이 연결되도록 하였다. - login html의 경우 header와 footer의 include가 필요없다. 따라서 {% load static %}만 해준다. - 등록된 아이디와 비밀번호를 입력하고 sign in을 누르면 home 페이지로 이동해야할 것이다. - urls 와 views, html에 추가적..
django 기초 - bootstrap을 이용한 사이트 만들기 : 2. Models, Admin Page로 데이터 관리하기 - 서버에 등록된 사용자만 접속이 가능한 페이지를 만든다고 가정한다. - 처음 main 페이지로 로그인창을 사용하고 로그인 된 사용자만 접속이 가능하다. - 그것을 위해 MVT 패턴의 Model - 데이터베이스가 필요하다. Model & admin page # models.py class BbsUser(models.Model): user_id = models.CharField(max_length= 50) user_pwd = models.CharField(max_length=50) user_name = models.CharField(max_length=50) def __str__(self): return self.user_id+"\t" + self.user_pwd + "\t" + self.user_name..