목록Python/Django (7)
규도자 개발 블로그
해당 에러는 django에서 쓰는 패키지인 allauth나 django-rest-auth등 인증 관련 패키지에서 자주 볼 수 있다. 해결법은 간단하다. Site와 일치하는 Query가 없다는 에러이니 Site와 일치하는 Query를 추가해주면 된다. django project root(manage.py가 있는 곳)에서 아래 명령어를 실행하여 django shell로 들어가자. $ python manage.py shell 그리고 아래 명령어를 통해 from django.contrib.sites.models import Site new_site = Site.objects.create(domain='ip혹은 도메인', name='프로젝트 이름') django_site테이블에 정보를 등록해주면 된다.
Django로 개발할 때 꼭 주의해야할 점 django로 개발할 때 편한 점이라고 하면 어플리케이션 개발환경을 구축할 때 기본적으로 sqlite를 만들어줘서 개발하려는 컴퓨터에 DB server를 따로 만들어 연결하지 않고도 개발에 착수할 수 있다는 점인데 이게 치명적으로 작용할 수 있다. 이유는 바로 Django의 Queryset이 DB에 의존적이기 때문이다. Django는 생쿼리를 되도록이면 자제하는 ORM(Object Relational Mapping) 프레임워크이다. 근데 아이러니하게도 이 ORM이라는 정체성을 갖게 해주는 Queryset이(예: Post.objects.all()등으로 얻는 모든 객체) DB에 의존적이다. 그러니까 작성된 명령어에 따라 sqlite에서는 이렇게, mysql에서는 저..
django에서 object queryset을 여러 기준으로 ordering하기 + object filter의 order_by 기준을 동적으로 구성하기. 이런 저런 작업을 하다가 Big aha moment를 만나서 적어두려 한다. 다른 부분은 거두절미 하겠다. 이러한 모델이 만들어져있다는 가정 하에 시작할 것이다. class Post(models.Model): title = models.CharField() #제목 content = models.TextFiled() #내용 timestamp = models.DateTimeField(default=timezone.now) #만들어진 시간 like_count = models.IntegerField() #좋아요 눌린 횟수 view_count = models.I..
django settings.py의 ALLOWED_HOSTS와 상용환경에서의 테스트 DEBUG가 True일 땐 ALLOWED_HOSTS에 자동으로 ['localhost', '127.0.0.1', '[::1]']가 적용되어 내가 돌려보고 내컴퓨터에서 들어가는 것이므로 윈도우나 맥 등에서의 개발환경에서는 사이트의 작동을 확인할 수 있지만 서버환경, 그러니까 외부에 노출된 IP가 있는 환경에서는 이렇게 돌려볼 순 있어도 서버 자체에서 브라우저를 설치해 들어가보지 않는 이상 확인해볼 방법이 없다. 그럼에도 불구하고 python manage.py runserver명령어를 통해 외부 브라우저에서 확인할 수 있는 방법이 있는데 뒤에 0.0.0.0:80이라는 주소와 포트번호를 붙이면 된다. 만들어진 명령어는 pytho..
django project에 contribute할 내용 (url dispatcher에 대한 건) 예전에 관련 작업을 할 때마다 아 이건 django 프로젝트 커뮤니티에 제보를 하던가 혹은 내가 직접 contributor가 돼서 개선 혹은 변경을 해야겠다고 생각한 부분이다. 약 반년 전쯤에도 작업을 하다가 떠올랐던 부분인데 뭔지 까먹어서 잊었던 부분이고 최근에 또 작업하다가 big aha moment를 만나서 다시는 까먹지 않게 여기에나마 기록해두려 한다. 직접적인 개선 방법 및 커뮤니티에 기여자로 참여하는 방법들을 모르니 일단 여기에 기록해둔 뒤에 직접 기고할 계획으로 말이다. 이 생각이 든 건 form을 제공하는 페이지에서 데이터를 수정하고 저장할 때 url을 지정하는 부분을 작업할 때였다. 어떤 fo..
Django Template에서 List사용하기 Django는 JSP나 PHP와는 다르게 Template(html과 로직이 섞여있는 곳) 내에서 자료형을 선언하거나, 백단에서 쓰던 언어를 그대로 쓰는 등의 행위가 굉장히 제한적이다. 그런 데에 있어서 편의성은 PHP가 넘사벽이지만 JSP도 자바로직과 자료형을 그대로 쓸 수 있다는 장점이 있다. 하지만 Django는 그런 면에서는 굉장히 불편하다. 물론 필요한 자료형을 애초에 get request요청시에 context에 담아서 가져올 수 있지만 굳이 그럴 필요가 없이 한 군데에서만 임시적으로 써야하는 자료형이라면? 그때부턴 귀찮음이 몸을 지배하기 시작한다. 예를 들어 파이썬에서 흔하게 쓰는 List를 템플릿에서 쓰고자 한다면 {% with list = [1..
간단한 react JS + Django 어플리케이션 만들기 일단 프로젝트를 시작하기 전에 서론이 길다. react와 django가 동작하는 방식에 대해선 관심 없고 단지 어떻게 만드는 지에 대해서만 관심있는 사람이라면 이 텍스트블록들은 과감하게 넘겨도 좋다. 하지만 제대로 만들기 위해선 react와 django를 이용한 웹어플리케이션이 어떻게 작동하는지에 대해서 간단하게나마 알아둘 필요가 있다. 그럼 시작하겠다. react는 Single Page Application을 위해 만들어진 Javascript라이브러리이다. 페이스북에서 만들었는데 딱 페이스북이 어떻게 동작하는지 보면 이 용도를 이해할 수 있다. 페이스북에서 좋아요를 누르고 댓글을 달고 페메를 보내는 건 전부 한 페이지에서 이뤄진다. 넷플릭스 또..