목록웹프로그래밍 (163)

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

[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
[Django] 11. Pagination 을 알아보자

안녕하세요 강민성입니다. 이번 시간에도 마찬가지로 blog project를 이어서 진행해보도록 하겠습니다. 글을 계속 추가할수록 글은 아래로 쌓이게 됩니다. 하지만 대부분의 웹사이트는 일정 수준 이상 쌓이면 다음 페이지로 넘어갈 수 있도록 구현 되어 있습니다. 이를 pagination 이라고 합니다. pagination을 알아보자 한 페이지에 3개의 글이 올 수 있도록 해보겠습니다. 장고에서 역시 이를 위한 클래스가 정의되어 있습니다. 먼저 이를 import 한 후 진행하겠습니다. from django.core.paginator import Paginator blog/view.py 설명할 부분이 많아 전체적인 코드를 먼제 보고 한 줄 씩 설명하겠습니다. blog_list = Blog.objects.all..

웹프로그래밍/Django 2019. 2. 27. 03:15
[Django] 10. 회원가입,로그인,로그아웃 구현하기

안녕하세요 강민성입니다. 이번 시간에는 회원가입과 로그인, 로그아웃 기능을 구현해보도록 하겠습니다. 이 기능들은 고맙게도 장고에서 제공을 해주고 있기 때문에 이 함수들을 가져다가 쉽게 구현할 수 있습니다. 그리고 실습을 시작하기 전에 알아야 하는 개념이 있습니다. 바로 http method인데 가볍게 짚고 넘어가도록 하겠습니다. http 상에서 정보를 주고 받는 방식 http 상에서 정보를 주고 받는 방식은 여러 개 존재합니다. 정보를 주고 받는 방식을 굳이 나눈 이유는 무엇일까요? 아래 코드는 blog app 에서 글을 쓰는 입력창에 해당하는 html 입니다. method를 따로 지정하지 않고 form으로 넘겨주면 GET방식으로 넘어오기에, views에서도 GET 을 사용하여 정보를 받아주고 있습니다...

웹프로그래밍/Django 2019. 2. 27. 00:37
[Django] 효율적인 url 관리

안녕하세요 강민성입니다. 저번 시간 까지 blog 프로젝트를 진행하였는데 이번 포스팅에서도 이를 베이스로 진행하도록 하겠습니다. 현재까지 project의 urls 를 확인해보면 다음과 같습니다. 아직 앱은 두 개 밖에 만들지 않았고, 하나의 앱은 url도 하나밖에 설정하지 않았습니다. 하지만 점점 복잡해지고, 앱이 추가될수록 복잡함은 더 심해질 것입니다. 그래서 url 을 효율적으로 관리하는 방법이 있습니다. 이를 알아보도록 하겠습니다. url 을 효율적으로 관리해보자 다시 한 번 urls 을 봐보도록 하겠습니다. 12~14 번째 줄을 보면 blog/~~ 를 가지는 url 로서 맨 앞에 blog 라는 공통적인 특징이 있습니다. 이들을 하나로 묶어줄 수는 없을까요? 그러기 위해서는 묶어주고 싶은 앱 안에 ..

웹프로그래밍/Django 2019. 2. 26. 01:17
[Django] class has no objects member 에러

안녕하세요 강민성입니다. 현재 vs code 에서 django 공부를 하고 있는데, 분명히 코드가 문제 없음에도 불구하고 계속 오류가 납니다. 바로 class has no objects member 라는 오류가 말이죠. 그 원인과 해결방법을 소개해드리겠습니다. class has no objects member 해결하기 우선 다음과 같은 빨간 줄은 굉장히 신경쓰이지만 실제로 서버를 실행시켜보면 아무런 문제없이 서버가 돌아가는 것을 알 수 있을 겁니다. 그 이유는 이는 오류가 아닌 vs code의 경고이기 때문입니다. django의 경우에는, objects 와 같은 속성들을 모든 model 클래스에 동적으로 추가합니다. 따라서 vs code는 이를 눈치채지 못하기 때문에 경고를 하게 되는 것이죠. 해결하는 ..

웹프로그래밍/Django 2019. 2. 25. 23:45
[html] vs code extension, Highlight Matching Tag

안녕하세요 강민성입니다. 간단하게 vs code extension을 하나 소개하도록 하겠습니다. 복잡한 코드를 한 눈에,Highlight Matching Tag 이름에서도 바로 알 수 있듯이, 어느 tag의 매칭되는 tag를 하이라이트해주는 기능을 가지고 있습니다. 코드가 길어질수록 여는 태그와 닫는 태그가 구분이 안되서 실수로 닫는 태그나 하나 부족하거나 더 많거나 하는 경우가 생길 겁니다. 이럴 경우, 전체적인 코드에 영향을 미치므로 이 extension을 이용해서 해결하시기를 바랍니다. 다음과 같이 한 태그를 선택했을 때 그 태그와 매칭되는 태그에 노란선으로 하이라이트 해줍니다. 설치경로는 아래 홈페이지 혹은 vs code 내에서 가능합니다. https://marketplace.visualstudi..

웹프로그래밍/html,css 2019. 2. 25. 23:01