일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- HTML
- Visual Studio
- anaconda3
- queryset
- rank
- advColumnGrid
- python3
- get_object_or_404
- 중복제거
- Delphi
- c#
- delphi 10.3
- python 3.7
- declare
- github
- dbadvgrid
- 델파이
- 백준
- MSSQL
- Push
- PyCharm
- templates
- Django
- GIT
- pyhcarm
- hackerrank
- TMS
- COMMIT
- pythonanywhere
- blog
- Today
- Total
DevHyun
[DevHyun's Blog] Django&Python으로 만든 Blog에 로그인한 사용자만 글쓰게 만들기! 본문
[DevHyun's Blog] Django&Python으로 만든 Blog에 로그인한 사용자만 글쓰게 만들기!
D3V3L0P3R 2020. 10. 21. 20:45
위의 포스트에서 이어집니다!
장고걸스 코치들과 자원봉사자들의 수고로 번역된 글을 참고하였습니다.
Blog를 만들었으나! 로그인한 사용자가 아닌 모든 사용자가 다 글을 쓸 수 있었다.. 하지만 로그인한 사용자만 글을 쓸 수 있도록 보안을 강화해보자!!
1. base.html에서 Post 게시 버튼의 div로 이동해서 로그인 여부에 따라 버튼 보이는 기능 추가하기
* Blog/templates/Blog/base.html
<html>
...
..
.
<body>
<div class ="page-header">
{% if user.is_authenticated %}
<a href="{% url 'post_new' %}" class="top-menu"><span class="glyphicon glyphicon-plus"></span></a>
{% endif %}
...
..
.
</div>
...
..
.
</body>
</html>
* {% if %} : 브라우저에 페이지를 요청 하는 사용자가 로그인 하는 경우 링크가 발생
- is_authenticated : 로그인여부 (속성)
- is_anonymous : 로그아웃 여부 (속성)
∨∨ is_authenticated 관련 참고 사이트∨∨
wayhome25.github.io/django/2017/05/18/django-auth/
2. post_detail.html 에 Post 수정 버튼의 div로 이동해서 로그인 여부에 따라 버튼 보이는 기능 추가하기
* Blog/templates/Blog/post_detail.html
{% extends 'Blog/base.html' %}
{% block content %}
<div class="post">
{% if post.published_date %}
<div class="date">
{{ post.published_date }}
</div>
{% endif %}
{% if user.is_authenticated %}
<a class="btn btn-default" href="{% url 'post_edit' pk=post.pk %}"><span class="glyphicon glyphicon-pencil"></span></a>
{% endif %}
<h1>{{ post.title }}</h1>
<p>{{ post.text|linebreaksbr }}</p>
</div>
{% endblock %}
++ Django Girls 튜토리얼엔 없는 내용!
**admin 페이지 쳐서 들어가기 귀찮으니 메인 화면에 관리자 페이지 버튼 이동 추가해보기!
3. base.html에 관리자로 로그인 가능하도록 관리자 페이지 이동 버튼 추가하기
* Blog/templates/Blog/base.html
∨∨ 버튼 이미지 관련 참고 사이트∨∨
getbootstrap.com/docs/3.3/components/
<html>
...
..
.
<body>
<div class ="page-header">
...
..
.
{% if user.is_anonymous %}
<a href="{% url 'admin' %}" class="top-menu"><span class="glyphicon glyphicon-cog"></span></a>
{% endif %}
...
..
.
</div>
...
..
.
</body>
</html>
* 로그인 안했을때만 보여줘야 하기 때문에 user.is_anonymous 를 사용하였음!
4. views.py에 admin View 추가하기
* Blog/views.py
... .. . from django.http import HttpResponse ... .. . def admin(request): return HttpResponse(admin) |
* admin view 선언! 아무튼 선언!
5. urls.py에 admin 페이지 추가!
* Blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
...
..
.
path('admin', views.admin, name='admin'),
]
++ Django Girls 튜토리얼엔 없는 내용 끝!
6. pythonanywhere에 배포 하기!
'Web > Django&Python Blog Projecct' 카테고리의 다른 글
[DevHyun's Blog] 사용 SQL을 sqlite3(local)에서 가상database(mysql)로 변경해보자! (0) | 2020.10.30 |
---|---|
[DevHyun's Blog] Django&Python으로 만든 Blog 개선하기! (0) | 2020.10.27 |
[DevHyun's Blog] Django Form 만들기(일반 사용자가 Post 수정 가능하게 만들기) (0) | 2020.10.21 |
[DevHyun's Blog] Django Form 만들기(일반 사용자가 Post 추가 가능하게 만들기) (0) | 2020.10.21 |
[DevHyun's Blog] Django&Python으로 만든 Blog App 확장(extending)하기 (0) | 2020.10.19 |