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

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

[Django]humanize 를 이용해 세 자리마다 콤마찍기

금액을 표시할 때 통상적으로 세 자리마다 콤마를 찍어주곤 합니다. 장고 템플릿에서도 이 기능을 지원해주는데 함께 알아보도록 하겠습니다. 먼저 settings.py 에 app을 추가해야합니다. 이 app 은 장고에서 기본적으로 제공해주므로 별도의 작업없이 추가만 해주면 됩니다. # settings.py INSTALLED_APPS = [ ... 'django.contrib.humanize', ... ] 다음으로는 이를 html 파일에 로드해줘야 합니다. {% load humanize %} 이제 comma 를 찍어주는 일만 남았습니다. 템플릿 필터를 사용하여 추가해줍니다. item 라는 object에 price 라는 필드라고 가정해보도록 하겠습니다. {{ object.price }} {{ object.pric..

웹프로그래밍/Django 2019. 5. 21. 02:04
[Django] 아임포트를 이용한 결제모듈 만들기

개발을 하다보면 쇼핑몰, 배달의 민족과 같이 결제 시스템이 필요한 경우가 있습니다. 우리 주위에서 많이 찾아볼 수 있죠. 이번 시간에는 아임포트 를 이용해서 결제시스템을 만들어보도록 하겠습니다. 국내에서는 해외에 비해 결제 모듈 구축이 휠씬 어려운 편인데 이를 아임포트가 비교적 쉽게 만들어줍니다. 그럼 원리부터 알아보도록 하죠. PG사? 아임포트? 크게 보면 값을 지불하고 재화를 얻는 User,User에게 돈을 받고 서비스를 제공해주는 판매자,이를 도와주는 PG 로 나눌 수 있을 겁니다. User가 값을 지불하는 과정에서 판매자를 대신해 금액을 정산해주는 업체를 Payment Gateway, PG 사라고 합니다. 하지만 우리가 아는 것만 해도 신한, 비씨, 국민. 현대. 삼성. 롯데. 외환. 하나. 농협..

웹프로그래밍/Django 2019. 5. 20. 22:13
[Django] 회원가입 시 이메일 인증, SMTP

SMTP SMTP 는 Simple Mail Transfer Protocol 의 약자로 전자 메일 전송을 위한 표준 프로토콜입니다. 이를 이용해서 인증메일을 보내보도록 하겠습니다. 사전 설정 IMAP 설정 : 링크로 들어가서 IMAP 1단계 설정을 해줍니다. 이로서 다른 이메일 클라이언트에서 Gmail 을 사용할 수 있도록 해줍니다. 보안수준 설정 : 위 설정만으로는raise SMTPSenderRefused(code, resp, from_addr 에러가 발생합니다. 제가 접근하는 방식이 보안수준이 낮기 때문에 위험을 느끼고 Gmail 에서 접근을 막는 것 입니다. 따라서 위 링크로 들어가서 보안 수준을 낮춰줘야 합니다. 다음으로는 장고 내부 settings.py 로 이동하여 설정을 해보도록 합시다. # s..

웹프로그래밍/Django 2019. 5. 18. 17:56
[Django]로그인 유지하기, 쿠키와 세션

저번 포스팅에서 HTTP 통신에 대해서 알아보았습니다. 그리고 이 정보는 상태 비 저장 프로토콜 입니다.우리가 로그인을 할 때 아이디와 비밀번호의 정보도 HTTP 통신 중 POST 방식으로 보내기 떄문에 이 정보는 저장이 되지 않습니다. 그렇기 때문에 로그인 유지하기 기능을 구현하기 위해서는 다른 방법을 사용해야 합니다. 그 방법으로 쿠키와 세션을 알아보도록 하겠습니다. 쿠키(Cookie) 쿠키란? 클라이언트인 웹 브라우저 로컬에 저장하는 키와 값이 들어있는 작은 데이터 파일 만료시점 사용자 인증이 유효한 시간을 명시 가능, 브라우저가 종료되도 유효시간이 남아있으면 인증이 유지 됨 쿠키 구성 요소 이름 : 각각의 쿠키에 대한 식별자 값 : 쿠키의 이름과 관련된 값 유효시간 : 쿠키의 유지시간 도메인 : ..

웹프로그래밍/Django 2019. 5. 9. 22:02
[Django] 효율적인 url 관리 (2)

효율적인 url 관리 https://ssungkang.tistory.com/entry/django-%ED%9A%A8%EC%9C%A8%EC%A0%81%EC%9D%B8-url-%EA%B4%80%EB%A6%AC 저번 포스팅에 이어 추가되는 내용이 있어서 보충합니다. urls.py 에서 각 url 마다 name을 지정해줌으로서 하드코딩을 피하고 클린 코드를 짤 수 있습니다. 예시를 보면서 이해하도록 하겠습니다. Sign Up Now 다음과 같이 {% url 'url의 이름' %} 과 같은 방식으로 이름에 해당되는 url로 연결을 해줍니다. 프로젝트가 확장됨에 따라서 urls.py 를 앱마다 따로 관리하고 namespace로 연결할 경우에는 앞에 추가로 namespace를 붙여주어야합니다. 이로서 다른 앱에 같은..

웹프로그래밍/Django 2019. 5. 4. 20:55
[Django] 기본세팅하기

기본 세팅하기 기존에 django 를 이용하여 Hello World 를 출력해보는 기초를 알아보았습니다. https://ssungkang.tistory.com/entry/Django-02-Django-%EC%8B%9C%EC%9E%91-Hello-World-%EC%B6%9C%EB%A0%A5 이번에는 좀 더 나아가서 기본세팅을 정형화 해보도록 하겠습니다. 프로젝트의 이름 프로젝트 이름은 project 로 , 그 하위 폴더는 config 로, 중심이 되는 app은 core 로 하도록 하겠습니다. 다만 프로젝트와 그 하위 폴더의 이름은 자동으로 같게 되기 때문에 프로젝트의 이름을 config 로 생성 후 최상단 디렉토리를 project로 바꿔줍니다. settings 파일 장고 프로젝트를 생성하면 기본적으로 se..

웹프로그래밍/Django 2019. 5. 1. 15:22
[Django]투표 기능 구현하기

투표 기능 구현하기 학교내 고양이 관리하는 사이트 UOSCAT 의 기능 중 일부이다. 길고양이 이니 만큼 이름을 투표를 통해 지어주었고 그 투표구현하는 방법을 알아보자. models.py 먼저 model 을 추가해줘야한다. 현재 있는 모델은 Cat 으로서 일반적인 Post 글에 해당한다. 각 Cat 마다 하나의 투표가 필요하므로 그 이름을 Vote 라고 한다. 그리고 Cat 과 Vote는 1대1 대응이다. 그리고 각 Vote마다 여러 개의 표가 존재하고 그 이름을 Choice 라고 하자. Vote와 Choice는 일대다 대응이다. class Vote(models.Model): created = models.DateTimeField(default=django.utils.timezone.now) # 투표는 ..

웹프로그래밍/Django 2019. 4. 6. 02:12