반응형

자격증 & 문제풀이/Django-Project 11

[Django] 게임 목록(검색, 필터, 가격필터 기능 및 페이징 기능 구현 그리고 최저가 기능 구현)

이제 대망의 게임목록 페이지를 만드는 시간입니다. 게임목록페이지에서는 게임리스트를 보여줌과 동시에 게임검색기능, 장르필터기능, 가격필티기능을 구현하고 페이징기능까지 구현할것입니다. 게임검색과 필터 기능의 핵심은 검색을 했을시 game_search페이지로 넘어간다는 것입니다. 즉, 원래의 게임목록 페이지와 검색후 페이지는 다른 페이지입니다. ■ views.py(리스트 부분) 모든 게임 데이터 가지고 오기(all_games) -> 페이징기능구현 -> 필터에서 쓸 장르리스트 가져오기 -> 최저가기능 순으로 구현되었습니다. 이 페이징, 필터 및 검색, 최저가 기능을 context라는 dictionary에 담아서 game_list.html에서 호출됩니다. ▶ 게임 리스트에서의 최저가 노출 view안에서 model..

[Django] 게임세부정보(game_detail)[댓글, 좋아요 기능]

이번 포스팅에서는 게임세부정보를 만들어볼것입니다. 게임 세부정보에서는 게임유튜브동영상, 출시일/사양/개발사 등의 정보, 유통사별 가격, 댓글 및 좋아요기능이 있습니다. ■ models.py 댓글기능을 하는 class를 추가합니다. CustomUser를 accounts에서 가지고 와서 댓글을 누가썼는지 알수있기 합니다. post는 게임detail페이지이며 date는 작성일, content는 내용, writer는 로그인한 작성자입니다. 마지막으로 먼저 쓴 글이 밑으로 내려가도록 '-'를 이용하여 역순으로 배열합니다. # 댓글 from accounts.models import CustomUser class Comment(models.Model): post= models.ForeignKey(Game, on_de..

[Django] Django와 데이터 연동

이번 포스팅에서는 Django에 데이터를 연동시키는 작업을 할 것입니다. 한증막.GG에서 사용한 데이터는 Steam(게임유통사이트)에서 추출한 데이터입니다.(2018년 4월 기준) 아래 데이터를 받아서 진행해주시기 바랍니다. ■ 보유한 데이터 설명 pc_requirements_minumum과 pc_requirements_recommended에서 null값은 not_supported로 치환하였습니다. steam_appid는 게임상세정보페이지에서 steam사이트를 클릭했을때 해당게임페이지로 바로가는데에 활용되는 데이터입니다. released_date_1은 게임이 공게된 날짜이며 대부분은 Apr 20, 2020 이런형식으로 되어있습니다. price1부터 price5까지는 게임유통사이트5개를 가정하여 임의로 유..

[Django] Game Update와 Delete

이번에는 저번 포스팅에서 만들었던 게임정보를 수정하는 기능을 구현하겠습니다. ■ views.py Update는 UpdateView를 이용합니다. get_success_url은 향후 game_datail(게임세부정보)가 완성되었을 때 추가시키면 됩니다. from django.views.generic import CreateView, UpdateView, DeleteView class GameUpdateView(UpdateView): template_name = 'game/game_update.html' form_class = GameCreateForm model = Game #update는 create와 다르게 폼을 만들때 조회를 해야하기때문에 모델을 지정해주어야함 def get_success_url(se..

[Django] Game Model과 Game 등록(create)

Game 앱은 게임리스트와 각종필터 그리고 게임정보 페이지를 만드는데 이용됩니다. 먼저 python manage.py startapp game 으로 game 앱을 만듭니다. ■ Models.py Game과 Genre_list 두개의 class를 만듭니다. ▶ Game class 1. title(게임타이틀) 2. app_id(게임id) -> 게임정보 가격비교쪽에서 steam사이트의 게임정보로 바로 갈때 필요 3. genre(장르), developer(개발사), release_at(공개일자), info(게임정보) 4. pc_requirement_mimimum(최저사양), pc_requirement_recommended(추천사양) 5. steam, origin, uplay, epic_games, drmfree..

[Django] Base.html

프로젝트 밑에 templates폴더를 만들고 base.html을 만듭니다. 어느페이지를 가든 기본적으로 적용되는 html입니다. load static로 이미지파일을 로딩합니다. base.html에서는 부트스트랩을 사용하였습니다. 상단바와 풋터(페이지 하단)를 구현하였습니다. 웹 어플리케이션 한증막.GG의 모든 html들은 페이지의 가로를 12개의 영역으로 나누는 부트스트랩의 격자 체계에 기반하여 디자인했다. 전체적인 디자인 컨셉은 블랙 테마+옐로의 투 컬러. ▶ home.html 비록 이번 프로젝트에서는 구현하지 못했지만 현재 진행중인 할인과 사용자 정보 등에 기반한 추천 시스템이 구현됐을 때 활용할 수 있는 카드 앨범을 배치. 기타 한증막.GG에 사용된 html들 요소들의 횡적 배치는 부트스트랩의 격자..

[Django] Home.html

프로젝트에 templates폴더를 만들고 home.html을 만듭니다. 한증막GG의 Home와 관련된 템플릿입니다. {% extends 'base.html' %} {% load static %} {% block content %} 한증막.GG에 오신 것을 환영합니다. 한증막.GG는 게임 최저가 비교 사이트입니다. 원하는 게임을 가장 저렴한 가격에 구매해보세요. 자세히 알아보기 지금 좀 쩌는 할인 Detroit: Become Human puts the destiny of both mankind and androids in your hands, taking you to a near future where machines have become more intelligent than humans. 게임으로 이동..

[Django] 한증막.GG 사이트 설명

■ Home화면 Home화면에서는 할인하고 있는 게임과 대표게임을 보여줍니다. 추후 추천시스템을 구현하게 되면 게임을 추천해주는 페이지로도 활용할 수 있습니다. ■ 게임목록 페이지 게임목록 페이지에서는 다양한 게임들을 보여줍니다. 게임이미지(썸네일)과 게임이름, 최저가, 개발사 등을 보여줍니다. 좌측에는 게임검색기능과, 장르필터기능 그리고 가격(최저가)필터기능을 구현할 것입니다. 페이지당 나오는 갯수를 제한하였고 페이징을 구현하였습니다. ■ 게임디테일(정보) 페이지 게임정보페이지에서는 게임에 대한 정보를 제공합니다. 먼저 해당 게임과 관련한 유튜브 동영상을 제공합니다. 그리고 출시일, 개발사, 장르등의 기본적인 내용과, 최소사양과 권장사양에 대한 정보를 보여줍니다. 그리고 각 유통사마다의 가격을 보여주고..

[Django] 한증막.GG는 무엇인가

■ 한증막.GG 소개 ▶ 한증막.GG는 게임 판매가격 비교사이트입니다. 스팀과 에픽게임즈, 오리진 등의 주요 게임 플랫폼에서 판매하는 게임들의 가격들을 한 번에 비교하여 최저가에 구매할 수 있도록 도와줍니다. ▶ 웹 어플리케이션의 이름 게임 판매 플랫폼들을 비교해주는 저희 앱의 캐릭터를 재미있게 표현한 이름입니다. 세계에서 가장 거대한 게임 판매 플랫폼 중 하나인 Steam의 이름을 비틀고, 근래에 Good Game을 축약한 GG를 게임 관련 웹 어플리케이션의 도메인으로 사용하는 트렌드를 반영했습니다. ■ 한증막.GG를 만든 계기 ▶ 위에서부터 스팀, 다이렉트게임즈, 옥션에서 본 폴아웃4 GOTY에디션 가격입니다. ▶ 각각 69000원, 63500원, 17310원으로 가격이 천차만별입니다. ▶ 이처럼 같..

[Django] 로그인 권한 주기

이제 회원가입과 로그인 틀을 만들었으니 로그인에 대한 권한을 줄 차례입니다. 로그인이 안되었다면 로그인과 회원가입 버튼이 나타나게하며 로그인이 되었다면 회원가입과 로그인 버튼이 사라지게하며, 로그인 버튼이 로그아웃으로 바뀌어야 합니다. 이를 위해서 먼저 config의 settings.py에서 추가해주어야할 것이 있습니다. #config.settings.py # User enroll AUTH_USER_MODEL = 'accounts.CustomUser' #로그인 성공시 이동할 url LOGIN_REDIRECT_URL = "/" #로그인 해야 요청할 수 있는 view를 로그인 안하고 요청했을 때 이동할 URL LOGIN_URL = '/accounts/login' #로그아웃 성공시 이동할 url LOGOUT_..

반응형