본문 바로가기

Study/django

(9)
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..
django 기초 - bootstrap을 이용한 사이트 만들기 : 1. 페이지 틀 구성하기 오늘은 부트스트랩을 사용하여 웹페이지를 구성하는 작업을 하였다. 사용한 소스는 현재 수업을 듣고 있는 멀티캠퍼스 데이터 분석 클래스에서 제공받았다. (따로 소스 파일을 업로드 하진 않을 예정) bootstrap 부트스트랩이란 트위터에서 시작한 각종 레이아웃, 버튼, 입력창 등의 디자인과 기능을 css와 JavaScript로 만들어 놓은 것으로 오픈소스 프론트엔드 프레임워크이다. 트위터에서 사용한 디자인, 기능 요소들을 시작으로 현재에는 다양한 형태가 있다. 무료에서 부터 일부 유료인것도 있는것 같다. - https://getbootstrap.com/ 사이트에서 기본 코드들을 통해 연습을 할 수 있다. - 나는 html, css, img, jquery와 같은 각종 자원을 공유받아 실습을 진행했다. 0. s..