일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MAC
- java
- react
- Django
- DRF
- 알고리즘 풀이
- django widget
- 백준
- Baekjoon
- c++
- 알고리즘
- API
- web
- django rest framework
- Algorithm
- PYTHON
- 알고리즘 문제
- js
- javascript
- es6
- Git
- form
- 파이썬
- HTML
- 파이썬 알고리즘
- 알고리즘 연습
- django ORM
- CSS
- AWS
- 장고
- Today
- Total
목록웹프로그래밍/Django (81)
수학과의 좌충우돌 프로그래밍
Generic display views 에는 DetailView 와 ListView 가 있습니다. DetailView 는 각 상세 페이지를 나타내는데 있어서 ListView 는 전체적인 페이지를 나타내는데 있어서 굉장히 효과적입니다. 두 클래스를 알아보도록 합시다. DetailView 실습 전체적인 코드를 살펴보기 전에 어떻게 사용되고 있는지 예시를 먼저 보도록 하겠습니다. DetailView 의 역할은 각 상세페이지를 보여주는 역할을 합니다. 간단히 Post 모델을 정의하고 이 상세페이지를 보여주도록 하겠습니다. # models.py from django.db import models class Post(models.Model): title = models.CharField(max_length=20) ..
CBV 란? 기존에는 views 를 함수로 사용해왔습니다. 이는 Function Based View , 줄여서 FBV 라고 합니다. 그렇다면 함수 외에 다른 것으로 views 를 작성할 수는 없을까요? 가능합니다. views는 사실 함수가 아닌 Callable Objects,즉 호출가능한 객체면 문제 없습니다. 함수도 호출가능한 객체 중 하나이기 때문에 사용할 수 있는 것이죠. 따라서 다른 호출가능한 객체인 클래스로도 views 를 구성할 수 있습니다. 이는 Class Based View, 줄여서 CBV 라고 합니다. CBV 의 장점 우선 클래스의 장점을 모두 사용할 수 있습니다. 상속, 오버라이딩 등등 여러 방식으로 코드의 효율을 극대화 할 수 있습니다. FBV 로 views 를 작성하다보면 생각보다 ..
Media 파일이란? media 파일이란 FileField 를 통해 저장한 모든 파일을 지칭합니다. 물론 ImageField 도 FileField 를 상속받은 필드로서 유사 필드들을 통해 저장된 파일도 media 파일입니다. 이는 특별하게 db 필드에는 저장경로를 저장하고 파일은 뒤에서 다시 다루겠지만 settings.MEDIA_ROOT 경로에 저장 하게 됩니다. settings 에서의 설정 MEDIA_URL MEDIA_URL = '/media/' 각 media 파일에 대한 URL 의 고정값을 설정할 수 있습니다. 예시를 들자면 필드명.url 에 의해 MEDIA 파일에 대하여 접근할 때 결정되는 값입니다. MEDIA_ROOT MEDIA_ROOT = os.path.join(BASE_DIR, 'media')..
Static 파일이란? static 파일이란 js, css, image, font 등과 같이 개발자가 사전에 미리 서버에 저장 해둔 파일들을 말합니다. 정적인 파일들이라고 할 수 있습니다. settings 에서의 설정 STATIC_URL STATIC_URL = '/static/' 이미 settings 에 위와 같이 설정이 되어있습니다. 이를 통해 각 static 파일에 대한 URL의 고정값을 설정할 수 있습니다. 예시를 들자면 {% static '경로' %} 에 대해서 해당 URL 이 STATIC_URL+'경로' 로 바뀌게 되고 이는 다시'/static/경로' 다음과 같이 바뀌게 되어 참조를 할 수 있습니다. STATICFILES_DIRS STATICFILES_DIRS = [ os.path.join(BA..
Django의 파이썬 변수를 templates 로 넘겨주기 위해서 템플릿 문법를 사용합니다. 단순히 문자열 값을 나타내기 위해서는 문제가 없지만 javascript 에서 처리를 해줘야 할 상황이 온다면 제한 사항이 생깁니다. 이럴 때는 특별한 과정이 필요한데 이에 대해서 알아보도록 하겠습니다. 문제 발생 상황 어느 상황에서 문제가 발생했는지 전체적인 코드를 간단하게 설명해드리겠습니다. models.py from django.db import models # Create your models here. class Profile(models.Model): name = models.CharField(max_length=10) def __str__(self): return self.name def as_dict..
프로그래밍에서 디버깅은 땔래야 땔 수 없는 중요한 요소입니다. django 에서도 마찬가지 입니다. 그래서 저번에 vs code 를 이용하여 django 에서 디버깅하는 방법을 포스팅하기도 했었습니다. 이번에는 django-debug-toolbar 를 소개해드리겠습니다. django에서만 사용가능하며, 현재 서버와 클라이언트 간의 request, response 등 다양한 정보를 브라우저에서 쉽게 확인할 수 있습니다. 이를 통해 header, sql. static, cache 등 여러 정보 역시 확인할 수 있습니다. 보다 더 자세한 내용은 django-debug-toolbar 의 공식 문서 를 확인해주시고 간단히 설치방법을 알아보도록 하겠습니다. django-debug-toolbar 설치 pip inst..
SNS 를 비롯해서 많은 사이트에는 좋아요, 하트 라고 불리는 기능이 있습니다. 아마 다들 뭔지 아실거라고 생각합니다. 이번에는 이 기능을 구현해보도록 하겠습니다. 그러기 위해서 부가적으로 구현되어야 할 것이 많습니다. 유저부터 시작해서 게시물 등 많지만 이 부분은 앞선 포스팅에도 있으므로 빠르게 넘어가도록 하겠습니다. 추가적으로 기능 구현에 주를 두고 있으므로 templates 의 디자인적인 부분은 아예 신경 쓰지 않았습니다. 좋아요 기능 구현 위에서 말했듯이 이번에 알아볼 중요 코드 외에 부가적인 코드가 많습니다. 그 부분 보다는 좋아요를 위한 코드 위주로 설명을 하도록 하겠습니다. # like/models.py class Profile(models.Model): user = models.OneToO..
model 을 설계하는데 있어서 관계는 뺴놓을 수 없는 중요한 개념입니다. 각 모델 간에 여러 관계를 정의함으로서 많은 걸을 구현 할 수 있게 됩니다. 관계는 총 3가지가 있으며 이번에는 바로 그 관계에 대해서 알아보도록 하겠습니다. ForeignKey ForeignKey 는 1:N 관계를 의미합니다. 예를 들어 게시글과 댓글을 생각할 수 있습니다. 하나의 글에는 그 글에 해당하는 댓글이 여러 개 존재하게 되므로 ForeignKey 를 만족합니다. django 에서의 사용 예시 class Post(models.Model): # 생략 class Comment(models.Model): post = models.ForeignKey(Post, on_delete=models.CASCADE) 1:N 중에서 N 인..
이번 시간에는 데이터베이스에 저장되어 있는 데이터를 불러오는 방법에 대해서 알아보도록 하겠습니다. queryset 이란 이를 위해 빼놓을 수 없는 개념이 바로 queryset 입니다. query 란 데이터베이스에 정보를 요청해주는 것을 의미하며 파이썬으로 작성한 코드가 sql 로 매핑되어 queryset 이라는 자료 형태로 값이 넘어오게 됩니다. 이는 순회가능한 데이터로서 이를 이용하여 1개 이상의 데이터를 불러와 사용할 수 있습니다. queryset 의 특이한 점은 Lazy 한 특성입니다. 미리 db 에 접근해서 값을 불러오는 것이 아니라 출력 등과 같이 필요한 순간에 sql로 매핑되고 이를 통해 db에 접근해 값을 가져오게 됩니다. queryset 생성하기 queryset 에 대해서 알아보기 위해 m..
django 에서 기본적으로 주어지는 admin 페이지는 개발자에게 있어서 많은 편리함을 제공해줍니다. 이를 커스텀하여서 더 효율적으로 사용해보도록 합시다. admin 페이지에 models 등록 # {앱이름}/admin.py from django.contrib import admin form .models import Post # 방법 1 admin.site.register(Post) # 방법 2 class MyAdmin(admin.ModelAdmin): ... admin.site.register(Post, MyAdmin) # 방법 3 @admin.register(Post) class MyAdmin(admin.ModelAdmin): ... models 에는 Post 가 존재하고 이를 import 해와서 ..