목표 🌠 추천 시스템 기능을 활용한 서비스 페이지 만들기 다양한 Django의 기능들과 sqlite 공부하고 사용해보며 적절한 기능들 활용하기 마감기한까지 급하게 작성하다 제출하지 않도록, 제출일 전날까지 테스트 및 발표준비까지 완료하기 기획 📑 https://imju0.notion.site/06-Project_django_book-74be2d1fba3f486d9bd518350fb72ff2 06.Project_django_book 💡django , 추천 시스템을 활용한 프로젝트 입니다. imju0.notion.site https://github.com/sungwookoo/django_recommend_book GitHub - sungwookoo/django_recommend_book Contribute ..
All
장고 프로젝트에 등록되지 않은 파일에서 장고를 사용할 경우 다음과 같은 오류가 나타난다. django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 등록되어 있지 않은 파일을 아래와 같이 직접 장고에 등록해줘야한다. import os import django os.environ.setdefault("DJANGO_SETTINGS_MODULE",..
YYYY-MM-DD 형태로 변경하는 방법은 아래와 같다. {{ value|date:"Y-m-d" }}
같은 페이지를 사용할 때 어떤 url을 통해 왔는지 검사하며 값을 바꿔줄 때 사용할 수 있는 유용한 방법이다. {% if request.resolver_match.view_name == 'show_user_page' %}something{% endif %} ex) {% if request.resolver_match.view_name == 'get_recommend_list' %} 추천 도서 {% else %} 전체 도서 {% endif %}
html 모듈의 escape와 unescape와 동일한 기능으로, 사용법은 아래와 같다 autoescape {% autoescape off %} 내용 {% endautoescape %}
- db.sqlite3 삭제 - migrations 내 파일 삭제 - makemigration - migate
터미널에 pip freeze > requirements.txt 입력 시 requirements.txt 라는 텍스트 파일이 생성된다. 아래와 같이 개발환경의 버전들을 텍스트 파일로 확인할 수 있다. 협업 시 버전을 일치 시키는데에 유용할 것 같다.
django rest_framework에서 serializers.py의 create 함수 작성 후 테스트 중 에러가 발생했다. 에러가 발생한 코드와 에러는 아래와 같다. image_set = self.context['request'].FILES image_set = self.context['request'].FILES KeyError: 'request' 에러 해결을 위해 구글링 한 결과 아래와 같은 힌트를 얻을 수 있었다. while instantiating your serializer do like this ser = Serializer(context={"request": request}) 이유는 views.py에서 serializer를 선언할 때 request를 담아 context를 정의하지 않았기 ..
django 커피 모델링 연습 중 원하는 카테고리를 선택하면 조건에 맞는 커피들을 모두 표시하고 싶었다. 하지만 2개 이상의 즉 n개의 카테고리를 선택할 경우를 생각해야했다. 결론은 filter를 통해 얻은 데이터들을 결합시켜야했는데, union이 떠올라 정보를 찾아 해결하여 기록한다. category = request.POST.getlist('category[]', '') category라는 리스트에 1개 또는 2개 이상의 카테고리가 들어올 수 있도록 getlist를 사용해 POST 데이터를 받는다. if len(category) == 0: all_category = Category.objects.all() return render(request, 'home.html', {'error': '카테고리를 ..
input type checkbox 여러개 선택 시 django에서 처리하는 방법을 기록한다 {{ ct.name }} name="category[]" : name 속성의 값을 리스트 형태로 지정함으로써 django에서 리스트로 사용할 수 있게 된다. views.py category = request.POST.getlist('category[]', '') django.shortcuts request의 getlist를 사용해서 html form에서 전송한 데이터를 리스트 형태로 받을 수 있다. 이로써 전송 받은 list를 기분좋게 주무르며 사용할 수 있게 되었다.
django에서 static 폴더의 css를 적용이 되지 않는 문제를 해결하고 기록한다. settings.py STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), ) base.html index.html {% extends 'base.html' %} {% load static %} {% block style %} {% endblock %}
팀원 / 기획서 / 일정 / DB / API (Notion 링크) Django와 Doc2Vec 등을 활용한 Django 추천 시스템 프로젝트를 시작했다. 팀 회의 결과 주제는 유저/아이템 기반 협업 필터링을 통한 도서 추천 사이트로 결정했다. 데이터는 크롤링을 통해 가져오고 데이터들을 후처리 한 후 화면에 보여주도록 한다. 아래는 Notion 기획서 내용이다. 💡 프로젝트명 도서 추천 사이트 💡 기능 로그인 / 회원가입 회원가입, 로그인 ( 실패시 , 안내문구 삽입 ) 로그아웃 기능 ( 관심있는 장르 선택 ) - 소설 / 시 / 에세이 / 자기계발 / 여행 책 목록 로딩 관심 도서 기반 도서 추천 (아이템 기반 협업 필터링) 관심이 비슷한 사용자가 읽은 도서 추천 (유저 기반 협업 필터링) 도서 검색 도..
1. AWS에서 EC2 - 인스턴스 시작 2. Amazon Machine Image - Ubuntu Server 20.04 검색 3. 프리 티어인 ubuntu 선택 4. 보안 그룹 - 보안 그룹 편집 5. 키 페어 - 새 키 페어 생성 - 키페어 다운로드 후 파일 경로 기억 6. 인스턴스 생성 후 인스턴스 목록에서 인스턴스 ID 클릭 - 우측 상단 연결 클릭 - 연결 클릭 터미널 출력 7. $ sudo apt-get update # EC2서버에 git과 python 설치 $ git clone https://github.com/sungwookoo/django-sns-practice.git # 저장소 클론 $ ls # 디렉토리 내 폴더 정상적으로 들어왔는지 확인 $ cd django-sns-practice/..
taggit 모듈 사전 준비 1. Django 태그 모듈 설치 $ pip install django-taggit $ pip install django-taggit-templatetags2 2. project/settings.py 에서 install한 모듈 등록 및 설정 추가 INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'tweet', 'user', 'restaurant', 'taggit.apps.TaggitAppconfig', '..
회원가입 실패 1. user/views.py의 sign_up_view 메서드 수정 def sign_up_view(request): if request.method == 'GET': user = request.user.is_authenticated # is_authenticated : 로그인 되어 있는지 검사 if user: return redirect('/') # 로그인 한 사용자라면 home.html 이동 else: return render(request, 'user/signup.html') # 로그인 하지 않은 사용자라면 회원가입 페이지로 이동 elif request.method == 'POST': # POST 받은 username 저장 없다면 None username = request.POST.ge..