목록웹프로그래밍/Django (81)

수학과의 좌충우돌 프로그래밍

[Django] 17. 글 삭제 및 수정 구현하기

글 삭제 및 수정 교내 주인 없는 고양이들을 관리해줄 수 있는 사이트를 제작중이다. home.html 에 접속하면 여러 고양이들의 존재하고 각 고양이를 클릭하면 localhost:8000/detail/ 로 이동하여 detail.html 에서 상세 정보를 확인할 수 있다. 이 상황에서 고양이가 학교를 떠나서 고양이 정보를 담은 글을 삭제하거나 정보를 수정해야할 때, 어떻게 해야하는지 알아보자. [ 글삭제 ] 먼저 글을 삭제하는 기능을 구현해보자. 각 고양이를 클릭하면 detail.html 으로 이동하므로 이 안에 삭제 버튼을 넣어주자. detail.html 외적은 부분은 신경쓰지않고 단순하게 텍스트로 넣어주었다. a 태그 는 delete 라는 url 을 가진 주소로 이동하며 cat.id 를 넘겨준다. ca..

웹프로그래밍/Django 2019. 3. 24. 05:04
[Django] 많이들 하는 실수, html 파일의 위치

html 파일을 어느 경로에 넣어주어야 할까 그 동안 잘못된 방식으로 개발을 해와서 이를 수정하고자 한다. 잘못된 부분은 html 파일을 담아주는 경로 설정이다. 장고에서는 MTV 패턴을 따른다. 여기서 T는 templates 를 의미하며 화면 UI를 담당한다. 즉 html 파일들을 저장할 공간이다. html 파일들은 templates 디렉토리 안에 담아 장고에게 알려주는 역할을 한다. 따라서 현재까지 다음과 같은 경로에 html 파일들을 담아주었다. {앱이름}/templates/html파일 하지만 얼마 전에 이 방법이 잘못되었음을 깨달았다. 간단한 토이프로젝트에서는 이 부분이 문제를 일으킬 가능성이 적다. 그 이유는 다른 어플리케이션에 같은 이름의 html 파일이 존재해야 하기 때문이다. 장고는 이름이..

웹프로그래밍/Django 2019. 3. 11. 00:15
[Django] requirements.txt 를 통한 패키지 종속성 관리

requirements.txt 패키지 종속성 관리 intro 현재 장고 프로젝트를 진행중입니다. 둘이서 git 을 통해서 협업을 하고 있으며 각자 venv를 사용해 가상환경에서 작업을 하고 있습니다. 한 가지 문제에 봉착했는데 각자 작업을 하다보니 install 해오는 패키지가 달라 merge를 할 때마다 문제가 생겼습니다. 패키지 종속성 관리 git 을 통해 협업을 하게 되면 다음과 같은 문제에 봉착하게 됩니다. 파일들은 버젼관리가 잘되더라도, install 한 패키지는 내 환경에만 남아있기 때문이죠. 이럴 경우에는 내 환경에 어떤 패키지들을 사용하고 있나 함께 넘겨주도록 합니다. 현재 환경에서 설치한 패키지를 알려주는 명령어는 다음과 같습니다. pip freeze 그 결과 설치되어있는 패키지들을 확인..

웹프로그래밍/Django 2019. 3. 6. 17:45
[Django] 16. postgreSQL 사용하기!

안녕하세요 강민성입니다. 이번 시간에는 postgreSQL 사용에 대해서 알아보도록 하겠습니다. 우리는 여태까지 데이터 베이스를 따로 연동하지 않고도 잘 사용해왔습니다. 그 이유는, 장고는 기본적으로 sqlite 를 사용하기 때문입니다. sqlite는 여태 우리가 진행했던 소규모의 프로젝트, 토이 프로젝트 등에는 아무 문제 없지만 규모가 커지게 되면, 역부족 입니다. 이러한 이유로 사용가능한 여러 데이터 베이스가 존재합니다. 그 중에서도 postgreSQL 을 선택한 이유는 아래 이유가 같습니다. 1. 무료로 이용가능하다. 2. 설치 연동이 쉬운 편에 속한다. 3. 직관적 UI 를 가지고 있다. postgreSQL 사용하기! 지금껏 splite를 어떻게 사용해왔는지 postgreSQL은 어떻게 연동할건지..

웹프로그래밍/Django 2019. 3. 5. 15:05
[Django] 15. app 재사용하기

안녕하세요 강민성입니다. 이번 시간에는 app 재사용에 대해서 알아보도록 하겠습니다. 우리가 app 을 기능별로 세분화 하는 이유가 바로 재사용 때문이었습니다. 이 방법을 알아보도록 하겠습니다. app 재사용 하는 법 재사용의 원리 app 을 재사용하기 위해서는 재사용할 app 을 먼저 패키징 해줘야합니다. 패키징이라고 함은 app 을 다른 프로젝트에서 가져가서 사용할 수 있도록 포장하는 일이라고 할 수 있습니다. 그리고 이미 포장을 푸는 방법은 해본 적이 있으실 겁니다. pip install {패키지 이름} 다음과 같은 방식으로 패키지를 풀어줄 수 있습니다. 패키징 하는 법 그럼 패키징하는 방법에 대해서 알아보겠습니다. 패키징을 하기 위해서는 4개의 파일이 필요합니다. 4개의 파일의 이름과 각각의 역할..

웹프로그래밍/Django 2019. 3. 2. 15:55
[Django] 썸네일 만들기

안녕하세요 강민성입니다. 이번에는 썸네일에 대해서 알아보도록 하겠습니다. 썸네일이 무엇인지 들어보셨나요? 썸네일이란 여러 이미지 파일 중 이를 대표하는 이미지 파일을 말합니다. 이 블로그 포스팅도 마찬가지입니다. 저는 여러 이미지를 첨부하지만, 목록에서는 대표하는 이미지 하나만 보여주게 되죠. 장고에서도 이런 썸네일을 지정할 수 있습니다. 장고에서 썸네일을 지정하면 이점이 뭐가 있을까요? 다음과 같은 이점이 있습니다. 1. 파일 용량관리에 유리하다. 2. 파일 분류에 효율적이다. thumbnail 만들기 thumbnail 이라는 새로운 프로젝트를 만들고 thumbnailapp 이라는 이름으로 앱을 만들어주었습니다.(settings 에 등록!) 기본 과정은 생략하도록 하겠습니다. 장고 기본 과정 media..

웹프로그래밍/Django 2019. 3. 2. 04:25
[Django] 14. API를 통한 naver 지도 사용하기

안녕하세요 강민성입니다. 이번에는 API 가 뭔지 알아보고 이를 사용해보도록 하겠습니다. API : Application Programming Interface 우리가 개발한 프로젝트에 다양한 외부기능들을 사용할 수 있도록 해주는 연결통로 굉장히 여러 API가 있습니다. 그 중에서 naver의 지도 API를 사용해보도록 하겠습니다. API 사용법 저번 시간에 실습을 진행한 login 에 이어서 실습하도록 하겠습니다. 저번 시간의 실습은 여기를 클릭해주세요. API 도 저번 시간에 구현한 소셜 로그인과 비슷한 방식으로 구현을 합니다. https://www.ncloud.com 위의 링크로 들어가면 다양한 기능들을 살펴볼 수 있습니다. 여기서 naver map API 를 가져올 수 있는데 그러기 위해서는 회원..

웹프로그래밍/Django 2019. 3. 1. 21:22
[Django] 13. 소셜 로그인 구현( kakao,google, fackbook 등)

안녕하세요 강민성입니다. 이번 시간에는 소셜 로그인 기능을 구현해보도록 하겠습니다. 누구나 쉽게 이용가능, 소셜 로그인 기능 우리는 이미 한 번 로그인 기능을 구현한 적이 있습니다. 궁금하시다면 여기 를 클릭해주세요. 기존의 로그인 방식과 소셜 로그인 방식의 차이는 무엇일까요? 기존 로그인 방식은 회원가입을 하게 되면 유저의 정보가 다음과 같이 장고에서 기본으로 제공해주는 데이터베이스에 저장이 됩니다. 하지만 이 데이터베이스에는 이 뿐만 아니라 모델에서 나온 정보도 많이 저장이 되어있을 겁니다. 이렇게 한 군데에 여러 성격의 정보들을 저장하는 건 좋지 못한 방법입니다. 따라서, 소셜 로그인은 소셜 서버에 request를 보내고 token 을 주고 받으며 로그인 과정을 거치게 됩니다. 이를 한 번 구현해보..

웹프로그래밍/Django 2019. 3. 1. 04:06
[Django] 12. form 을 알아보자

안녕하세요 강민성입니다. 이번 시간에는 form 에 대해서 알아보겠습니다. 앞선 포스팅에서도 form을 다룬 적이 있습니다. blog에 글을 쓰기 위한 form도 만들어 보았고, 회원가입, 로그인 하는 form도 만들어 보았습니다. 하지만 이 때는 단순히 html로 만들었었는데, 장고에서는 모델과 대응시켜 이 form을 만들어 줄 수 있습니다. 이럴 경우, 보다 더 편하게 여러가지 기능을 추가할 수 있는데 이에 대해서 알아보도록 하겠습니다. form을 이용해 입력공간 만들기 마찬가지로 blog project에서 이어서 진행하도록 하겠습니다. 먼저 form.py를 원하는 앱 안에 만들어줘야 합니다. form의 위치는 중요하지 않지만 blog/models.py 의 class 를 불러올 것이기 때문에 편의상 ..

웹프로그래밍/Django 2019. 2. 28. 01:33