목록웹/Django (9)
Hansel

이 토이 프로젝트는 2021년 8월에 장고를 공부하고 나서 배운 것들을 완전히 내것으로 만들자는 의도로 시작되었던 프로젝트 입니다. 배포에 대해서는 3가지 방법(우분투, 헤로쿠, 도커)을 배웠었지만 어느것 하나 솔직히 완벽한 상태는 아니었습니다. 우분투와 도커를 통해 배포를 시도했지만 도커의 경우 가상환경을 도커 컨테이너에 같이 올려서 상당히 느린 퍼포먼스를 보여주었습니다. 우분투의 경우 데이터베이스에서 쿼리 문제가 생겼었는데 이는 다음과 같습니다. 당시엔 이게 뭐때문에 일어난 일인지 전혀 몰랐지만 sql을 공부하고 추후에 포스트그레스 db와 연동을 시켜 조회를 해보니 저기서 문제가 되는 divison_team의 id, 즉 pk가 null인 상태였습니다. 분명히 모델을 작성할땐 pk가 자동으로 증가하는 ..

https://docs.djangoproject.com/en/3.2/topics/auth/default/ Using the Django authentication system | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com 사용자가 비밀번호를 잊었을때 다시 비밀번호를 설정할 수 있도록 해보자 http://ruaa.me/django-view/ Django - 클래스형 뷰 아래 내용은 파이썬 웹프로그래밍(한빛출판사) 책의 ..

https://docs.djangoproject.com/en/3.2/topics/email/ Sending email | Django documentation | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com 위와 같이 가입한 사람에게 즉시 메일을 발송하는 기능을 구현해보자 Settings & Signals https://m.blog.naver.com/reductionist101/221568874432 SSL, TLS 차이 SSL(Secure Socket Lay..

검색 검색 자체를 구현하기는 어렵지 않다. Utils & View https://micropyramid.com/blog/querying-with-django-q-objects/ Querying with Django Q objects - Micropyramid Querying with Django Q objects to make complex queries with simple and less code micropyramid.com search 또한 utils에 작성했다. 검색창(form)에 입력하면 해당 문자열이 get 메서드로 보내지는데 searchPost 함수의 if문에서 해당 문자열을 받아와 search_text에 저장한다. 그 다음에 objects.filter를 통해 원하는 조건을 설정해 검색을 ..

유저간에 메세지로 소통할 수 있도록 메세지 기능을 구현하자. View & Form 메세지의 경우 보낸 쪽과 받는 쪽이 다르니까 sender와 receiver로 구분해준다. 두 필드 모두 foreignkey로 Team과 관계를 형성했는데 related_name으로 구분을 용이하게 해줬다. 이렇게 해두면 나중에 유저 입장에서 sender쪽과 receiver쪽에 포함되는 데이터를 가져오기 편리하다. MessageBox & view 필드에서 related_name을 설정해주면 더 이상 _set으로 해당 객체를 가져올 필요가 없다. 보내는쪽과 받는쪽을 각각 나눠서 msg_snd , msg_rcv에 담고 아직 읽지 않은 메세지의 개수를 filter를 통해 세어준다. 메세지 보내기 Message 보기 sendView..

댓글 위와 같이 글에 댓글을 남기도록 하고 싶다. 우선 리뷰의 모델과 폼을 작성한다. 리뷰는 댓글 내용만 입력되고 작성자는 현재 로그인된 유저와 연결시키면 되니 많은 필드가 필요하지 않다. owner엔 작성자, 그리고 linked에는 댓글을 작성하는 글을 연결시킨다. 리뷰는 크게 복잡할게 없다. 글을 작성해서 표시해주는 것과 똑같은 방식으로 작동된다. 우선 댓글은 post와 foreignkey로 연결되어 있는데 그럴 경우 _set으로 객체를 가져올 수 있다. 그 다음은 일반적인 게시글 작성 함수와 똑같다. 저장 전에 owner와 linked만 잘 연결시켜 주면 된다. 페이지네이션 https://docs.djangoproject.com/en/3.2/ref/paginator/#django.core.pagin..

글 등록 결제 내역을 등록하기 위해선 유저의 정보 탭에 들어와 추가를 눌러 등록해야 한다. 고려해야 할 점은 폼을 생성 시 어떤 필드를 포함해야 하는지 그리고 글과 작성자를 어떻게 연결해야 하는지 이다. 폼의 네모칸은 포함된 필드이고 모델의 네모칸은 포함되지 않은 필드이다. 제외된 부분들은 입력 할 필요가 없기 때문에 제외되었다. owner는 글의 작성자를 입력해서 등록할 수 도 있지만 효율적이지 않기 때문에 제외시키고 view에서 처리하는게 좋다. createPost 함수에선 우선 현재 유저의 정보를 user 변수에 저장한다. 그리고 postForm 객체를 생성하고 사용자가 입력할 수 있도록 return한다. create_post가 form을 return해 주기 때문에 html 내부에서 장고 템플릿을 ..

폼 페이지에서 회원가입을 제공하기 위해선 그에 맞는 폼이 필요하다. username은 로그인에 사용되는 id필드이다. createsuperuser를 통해 어드민 계정을 생성하고 admin패널로 가서 보면 확인할 수 있다. 위에서 커스텀 유저 폼은 기본 회원가입때 사용할 폼이고 커스텀 팀 폼은 가입 후 수정할 때 사용할 예정이다. View&Template view는 다음과 같다. loginTeam 에서는 method가 POST일때 input태그의 name이 user_id와 password인 것의 입력값을 받아와 user_id 그리고 password에 저장한다. 그 후 User 객체들 중 에서 username이 user_id와 일치하는 객체를 가져와 user에 저장하고 존재하지 않으면 message에 특정 ..

https://github.com/rogitun/Syu_eng_deploy GitHub - rogitun/Syu_eng_deploy Contribute to rogitun/Syu_eng_deploy development by creating an account on GitHub. github.com 나느 수강했던 연극 수업에서 불편한 점을 느꼈었다. 연극에 필요한 소품과 장비를 구매한 영수증과 사용날짜 등을 각 팀별로 총무에게 매주 보고해야 한다. 이 방식은 매우 비효율적으로 보였기 때문에 보고서와 결제내역을 웹사이트에서 하면 어떨까 하는 생각을 했었다. 하지만 당시에는 장고로 기본적인 CRUD 구현도 끙끙대던 시절이라 할 엄두가 안났지만 이젠 할 수 있지 않을까 싶어서 도전해보려 한다. 기본 템플릿은 ..