-
[Django] Django 연습장 - 5. html씌우기프로그래밍/Django 2022. 4. 15. 08:00반응형
개인적으로 작업하면 시간도 오래 걸리고 제가 front는 미숙하기 때문에 인터넷에서 free template를 찾아서 가져왔습니다.
https://appseed.us/admin-dashboards/django
App Generator - Deliver your projects faster | AppSeed
Production-ready Admin Dashboards, SSG Starters, JAMstack starters - 24/7 LIVE Suport via Discord.
appseed.us
해당 사이트에서 가져왔고
Dashboard에 대한 템플릿을 제공합니다.
+ 회원가입, 로그인
대시보드를 구현할 것은 아니지만... (나중에 구현할 수도 있고)
로그인 템플릿이 너무 밋밋해서... 템플릿을 씌우기로 했습니다.
[작업내용]
- 템플릿 가져와서 배분하기 (프로젝트 폴더 구조가 조금 다름)
- 로그아웃 기능 만들기
1. 템플릿 가져와서 배분하기
해당 작업은 길게 블로그 하는 것 보다 제 git을 참고해서, 또는 그대로 사용하시는 게 편할 겁니다.
template = html을 관리하는 구조는 다양한데 저는 app마다 template를 관리해서 다운로드한 형식처럼 그냥 template폴더에 퉁친 경우는 가져와서 분리하는 편입니다.
이를 위해 app_main이라는 app을 생성하고 메인페이지, 대시보드, 각종 기본 컴포넌트는 여기서 관리하고자 합니다.
간단히 설명하면 보통 서비스에서 사용하는 웹 페이지의 기본 레이아웃은 같습니다.
이를 html로 반복해서 만들면 효율이 나지 않으므로 base.html이라는 것(부모)을 만들어서 상속받아서 사용합니다.
보시면 dashboard.html은 base.html을 상속받아서 사용한다고 가장 상단에 extends ~ 를 사용하였습니다.
그럼 dashboard.html을 렌더링 하면 base.html에 있던 meta태그, css, js 전부다 사용할 수 있습니다.
그리고 각 base.html에서 <body></body> 태그 안에
{% block content %}{% endblock content %}
이렇게 작성하면 dashboard.html에서는 똑같이 해당 문법을 사용하여
{% block content %} 해당 페이지에서 작성하고 싶은 내용 {% endblock content %}
해당 html에서만 사용할 부분을 사용하게 됩니다.
2. 로그아웃 구현하기
-> 왜 로그아웃을 갑자기 구현하지? 라고 하실 수 있는데
어차피 어려운 일도 아니고, html에 logout하는 태그를 넣어놔서
로그아웃 기능을 구현하지 않으면 에러가 발생하기 때문에
html에서 해당 태그를 지우거나 로그아웃 기능을 생성해야했습니다.
어차피 나중에 만들 것이기 때문에 일단 만들었습니다.
app_accounts > urls.py
path('logout', LogOutView.as_view, name='logout')
app_accounts > views.py
class LogOutView(View): def get(self, request): logout(request) request.session.pop('login', None) return redirect('/')
html 작업하는 부분을 상세하게 설명하지 않았으므로 정리가 어느정도 된 상황의 git 상태의 주소를 업로드 하겠습니다.
* 일부 urls, views.py의 내용이 바뀌었을 수 있습니다.
ex -> signup.html -> register.html 등..
https://github.com/HOKlNG/django-celery-redis/tree/79dc45673245510f58c118eefe0a1345a540c787
GitHub - HOKlNG/django-celery-redis: practice django redis & celery
practice django redis & celery. Contribute to HOKlNG/django-celery-redis development by creating an account on GitHub.
github.com
반응형'프로그래밍 > Django' 카테고리의 다른 글
[Django] Django 연습장 - 7. 이메일 전송 비동기 방식 (celery + redis) (0) 2022.04.17 [Django] Django 연습장 - 6. 회원가입 프로세스 개선 (이메일 보내기 & 인증) (0) 2022.04.16 [Django] Django 연습장 - 4. 로그인 기능 만들기 (0) 2022.04.15 [Django] Django 연습장 - 3. User form 수정해서 회원 가입 조건 변경 (0) 2022.04.14 [Django] Django 연습장 - 2. User만들기 (1) 2022.04.14