본문 바로가기

Python/Django

(33)
[Docker+Django] Dockerfile로 Docker Django 이미지 만들기 / django 2.0 버전 이상 실습 저장소 https://github.com/JisunParkRea/dockerdjango-sample django 공식 이미지의 문제점 Django의 official docker image는 Docker hub에 올려져있다. https://hub.docker.com/_/django 그러나, 문제는 2016-12-31 이후로 지원이 끊겼다는 것이다. 즉, django의 1.x버전까지만 지원을 하고, django 2.0 버전 이상을 사용하기 위해서는 직접 이미지를 만들어야할 필요성이 생겼다. Docker Django 이미지 만들기 나의 실습 환경 Windows 10 Home Docker Toolbox Docker Quickstart Terminal 기본 Django 프로젝트 만들기 $ mkdir djan..
[Django ORM] QuerySet 수정을 통해 성능 향상시키기 / SQL Queries 중복 줄이기 / select_related, prefetch_related 들어가며 처음 video list 페이지를 들어갈 때마다, video의 개수가 늘어나면서 로딩시간이 눈이띄게 길어진 것을 느낄 수 있었다. 그래서 찾게된 QuerySet 효율적으로 사용하기! 초보몽키의 개발공부로그를 통해 웹 성능을 향상시킬 수 있었다. 기존의 문제점 기존의 video list view를 보면 다음과 같은 방법으로 모든 video를 불러오고 이를 template로 넘긴다. video_list = Video.objects.all() # 모든 video 불러오기 return render(request, 'video/video_list.html', {'video_list':video_list}) # template에 넘기기 그리고 django-debug-toolbar을 통해 queries를 확..
[Django Test] Django Unit Test (업데이트 중...2020/04/28) 참고 Django Documentation: Testing in Django Django Tutorial Part 10: Testing a Django web application 실습 저장소 https://github.com/JisunParkRea/my_djangotube JisunParkRea/my_djangotube Simple video service which can upload youtube videos using django - JisunParkRea/my_djangotube github.com models.py 테스트 from django.test import TestCase from django.contrib.auth.models import User from video.models im..
[Error Solved][Django url] django 프로젝트 앱에 <str:category> url을 추가했을 때 모든 url이 해당 url로 라우팅 되는 문제 문제 발생 # video/urls.py from django.urls import path from . import views urlpatterns = [ path('', views.video_list, name='video_list'), path('/', views.video_category, name='video_category'), # url 추가 path('/', views.video_detail, name='video_detail'), path('new/', views.video_new, name='video_new'), path('/delete', views.video_delete, name='video_delete'), path('signup/', views.signup, name='user..
[Django template] template 확장하기 / base.html 분리를 통해 html 재사용성 향상 https://github.com/JisunParkRea/my_djangotube JisunParkRea/my_djangotube Simple video service which can upload youtube videos using django - JisunParkRea/my_djangotube github.com DjangoTube 프로젝트를 하나하나 고치면서 프론트로는 기본적인 html과 bootstrap으로만 계속 더해나가다 보니깐, python코드보다 html 코드양이 많아졌다ㅠㅠ 그래서 github에 프로젝트의 대표 언어가 html이 된 것이 맘에 안들어서(지금은 도로아미타불..) 하게 된 django template 정리! base.html DjangoTube 홈화면(VIdeo List)의..
[Django] form을 활용하여 login view 수정하기 기존의 views.py def signin(request): if request.method == 'POST': form = LoginForm(request.POST) username = request.POST['username'] password = request.POST['password'] user = authenticate(username = username, password = password) if user is not None: login(request, user) return redirect('video_list') else: return HttpResponse('Login failed. Try again.') else: form = LoginForm() return render(reque..
[Django] Secret key 새로 생성 후 분리하기 Django Secret key란? [참고] Cryptographic Signing을 제공하는데 사용된다. Cryptographic Signing이란? Web application security의 Golden rule은 신뢰할 수 없는 출처로부터 온 데이터를 절대 신뢰해서는 안된다는 것 하지만 때로는 신뢰할 수 없는 매체를 통해 데이터를 전달하는 것이 유용할 수도 있다. 그렇기에 value를 Cryptographically sign(암호화적으로 서명)하는 것이 필요하다. Secret key 새로 생성 Django Secret Key Generator Secret key 분리 secrets.json { "SECRET_KEY": "여기에 secret key 넣기" } settings.py import js..
[Django DateTimeField] auto_now와 auto_now_add 출처 https://www.geeksforgeeks.org/datetimefield-django-models/ auto_now 갱신될 때마다 시간이 변함 Automatically set the field to now every time the object is saved. Useful for “last-modified” timestamps auto_now_add 처음 만들었을 때 시간으로 고정 Automatically set the field to now when the object is first created. Useful for creation of timestamps.