일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- django widget
- django ORM
- c++
- 파이썬 알고리즘
- 백준
- react
- java
- 알고리즘 문제
- form
- CSS
- MAC
- 알고리즘 풀이
- Django
- django rest framework
- PYTHON
- 알고리즘
- javascript
- HTML
- API
- es6
- web
- 알고리즘 연습
- DRF
- 파이썬
- AWS
- Baekjoon
- Git
- Algorithm
- 장고
- js
- Today
- Total
목록웹프로그래밍/Django (81)
수학과의 좌충우돌 프로그래밍
글 삭제 및 수정 교내 주인 없는 고양이들을 관리해줄 수 있는 사이트를 제작중이다. home.html 에 접속하면 여러 고양이들의 존재하고 각 고양이를 클릭하면 localhost:8000/detail/ 로 이동하여 detail.html 에서 상세 정보를 확인할 수 있다. 이 상황에서 고양이가 학교를 떠나서 고양이 정보를 담은 글을 삭제하거나 정보를 수정해야할 때, 어떻게 해야하는지 알아보자. [ 글삭제 ] 먼저 글을 삭제하는 기능을 구현해보자. 각 고양이를 클릭하면 detail.html 으로 이동하므로 이 안에 삭제 버튼을 넣어주자. detail.html 외적은 부분은 신경쓰지않고 단순하게 텍스트로 넣어주었다. a 태그 는 delete 라는 url 을 가진 주소로 이동하며 cat.id 를 넘겨준다. ca..
html 파일을 어느 경로에 넣어주어야 할까 그 동안 잘못된 방식으로 개발을 해와서 이를 수정하고자 한다. 잘못된 부분은 html 파일을 담아주는 경로 설정이다. 장고에서는 MTV 패턴을 따른다. 여기서 T는 templates 를 의미하며 화면 UI를 담당한다. 즉 html 파일들을 저장할 공간이다. html 파일들은 templates 디렉토리 안에 담아 장고에게 알려주는 역할을 한다. 따라서 현재까지 다음과 같은 경로에 html 파일들을 담아주었다. {앱이름}/templates/html파일 하지만 얼마 전에 이 방법이 잘못되었음을 깨달았다. 간단한 토이프로젝트에서는 이 부분이 문제를 일으킬 가능성이 적다. 그 이유는 다른 어플리케이션에 같은 이름의 html 파일이 존재해야 하기 때문이다. 장고는 이름이..
requirements.txt 패키지 종속성 관리 intro 현재 장고 프로젝트를 진행중입니다. 둘이서 git 을 통해서 협업을 하고 있으며 각자 venv를 사용해 가상환경에서 작업을 하고 있습니다. 한 가지 문제에 봉착했는데 각자 작업을 하다보니 install 해오는 패키지가 달라 merge를 할 때마다 문제가 생겼습니다. 패키지 종속성 관리 git 을 통해 협업을 하게 되면 다음과 같은 문제에 봉착하게 됩니다. 파일들은 버젼관리가 잘되더라도, install 한 패키지는 내 환경에만 남아있기 때문이죠. 이럴 경우에는 내 환경에 어떤 패키지들을 사용하고 있나 함께 넘겨주도록 합니다. 현재 환경에서 설치한 패키지를 알려주는 명령어는 다음과 같습니다. pip freeze 그 결과 설치되어있는 패키지들을 확인..
안녕하세요 강민성입니다. 이번 시간에는 postgreSQL 사용에 대해서 알아보도록 하겠습니다. 우리는 여태까지 데이터 베이스를 따로 연동하지 않고도 잘 사용해왔습니다. 그 이유는, 장고는 기본적으로 sqlite 를 사용하기 때문입니다. sqlite는 여태 우리가 진행했던 소규모의 프로젝트, 토이 프로젝트 등에는 아무 문제 없지만 규모가 커지게 되면, 역부족 입니다. 이러한 이유로 사용가능한 여러 데이터 베이스가 존재합니다. 그 중에서도 postgreSQL 을 선택한 이유는 아래 이유가 같습니다. 1. 무료로 이용가능하다. 2. 설치 연동이 쉬운 편에 속한다. 3. 직관적 UI 를 가지고 있다. postgreSQL 사용하기! 지금껏 splite를 어떻게 사용해왔는지 postgreSQL은 어떻게 연동할건지..
안녕하세요 강민성입니다. 이번 시간에는 app 재사용에 대해서 알아보도록 하겠습니다. 우리가 app 을 기능별로 세분화 하는 이유가 바로 재사용 때문이었습니다. 이 방법을 알아보도록 하겠습니다. app 재사용 하는 법 재사용의 원리 app 을 재사용하기 위해서는 재사용할 app 을 먼저 패키징 해줘야합니다. 패키징이라고 함은 app 을 다른 프로젝트에서 가져가서 사용할 수 있도록 포장하는 일이라고 할 수 있습니다. 그리고 이미 포장을 푸는 방법은 해본 적이 있으실 겁니다. pip install {패키지 이름} 다음과 같은 방식으로 패키지를 풀어줄 수 있습니다. 패키징 하는 법 그럼 패키징하는 방법에 대해서 알아보겠습니다. 패키징을 하기 위해서는 4개의 파일이 필요합니다. 4개의 파일의 이름과 각각의 역할..
안녕하세요 강민성입니다. 이번에는 썸네일에 대해서 알아보도록 하겠습니다. 썸네일이 무엇인지 들어보셨나요? 썸네일이란 여러 이미지 파일 중 이를 대표하는 이미지 파일을 말합니다. 이 블로그 포스팅도 마찬가지입니다. 저는 여러 이미지를 첨부하지만, 목록에서는 대표하는 이미지 하나만 보여주게 되죠. 장고에서도 이런 썸네일을 지정할 수 있습니다. 장고에서 썸네일을 지정하면 이점이 뭐가 있을까요? 다음과 같은 이점이 있습니다. 1. 파일 용량관리에 유리하다. 2. 파일 분류에 효율적이다. thumbnail 만들기 thumbnail 이라는 새로운 프로젝트를 만들고 thumbnailapp 이라는 이름으로 앱을 만들어주었습니다.(settings 에 등록!) 기본 과정은 생략하도록 하겠습니다. 장고 기본 과정 media..
안녕하세요 강민성입니다. 이번에는 API 가 뭔지 알아보고 이를 사용해보도록 하겠습니다. API : Application Programming Interface 우리가 개발한 프로젝트에 다양한 외부기능들을 사용할 수 있도록 해주는 연결통로 굉장히 여러 API가 있습니다. 그 중에서 naver의 지도 API를 사용해보도록 하겠습니다. API 사용법 저번 시간에 실습을 진행한 login 에 이어서 실습하도록 하겠습니다. 저번 시간의 실습은 여기를 클릭해주세요. API 도 저번 시간에 구현한 소셜 로그인과 비슷한 방식으로 구현을 합니다. https://www.ncloud.com 위의 링크로 들어가면 다양한 기능들을 살펴볼 수 있습니다. 여기서 naver map API 를 가져올 수 있는데 그러기 위해서는 회원..
안녕하세요 강민성입니다. 이번 시간에는 소셜 로그인 기능을 구현해보도록 하겠습니다. 누구나 쉽게 이용가능, 소셜 로그인 기능 우리는 이미 한 번 로그인 기능을 구현한 적이 있습니다. 궁금하시다면 여기 를 클릭해주세요. 기존의 로그인 방식과 소셜 로그인 방식의 차이는 무엇일까요? 기존 로그인 방식은 회원가입을 하게 되면 유저의 정보가 다음과 같이 장고에서 기본으로 제공해주는 데이터베이스에 저장이 됩니다. 하지만 이 데이터베이스에는 이 뿐만 아니라 모델에서 나온 정보도 많이 저장이 되어있을 겁니다. 이렇게 한 군데에 여러 성격의 정보들을 저장하는 건 좋지 못한 방법입니다. 따라서, 소셜 로그인은 소셜 서버에 request를 보내고 token 을 주고 받으며 로그인 과정을 거치게 됩니다. 이를 한 번 구현해보..
안녕하세요 강민성입니다. 이번 시간에는 form 에 대해서 알아보겠습니다. 앞선 포스팅에서도 form을 다룬 적이 있습니다. blog에 글을 쓰기 위한 form도 만들어 보았고, 회원가입, 로그인 하는 form도 만들어 보았습니다. 하지만 이 때는 단순히 html로 만들었었는데, 장고에서는 모델과 대응시켜 이 form을 만들어 줄 수 있습니다. 이럴 경우, 보다 더 편하게 여러가지 기능을 추가할 수 있는데 이에 대해서 알아보도록 하겠습니다. form을 이용해 입력공간 만들기 마찬가지로 blog project에서 이어서 진행하도록 하겠습니다. 먼저 form.py를 원하는 앱 안에 만들어줘야 합니다. form의 위치는 중요하지 않지만 blog/models.py 의 class 를 불러올 것이기 때문에 편의상 ..
안녕하세요 강민성입니다. 이번 시간에도 마찬가지로 blog project를 이어서 진행해보도록 하겠습니다. 글을 계속 추가할수록 글은 아래로 쌓이게 됩니다. 하지만 대부분의 웹사이트는 일정 수준 이상 쌓이면 다음 페이지로 넘어갈 수 있도록 구현 되어 있습니다. 이를 pagination 이라고 합니다. pagination을 알아보자 한 페이지에 3개의 글이 올 수 있도록 해보겠습니다. 장고에서 역시 이를 위한 클래스가 정의되어 있습니다. 먼저 이를 import 한 후 진행하겠습니다. from django.core.paginator import Paginator blog/view.py 설명할 부분이 많아 전체적인 코드를 먼제 보고 한 줄 씩 설명하겠습니다. blog_list = Blog.objects.all..