일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- anaconda3
- Visual Studio
- python3
- github
- queryset
- pyhcarm
- 델파이
- templates
- dbadvgrid
- get_object_or_404
- hackerrank
- TMS
- Delphi
- pythonanywhere
- Push
- 중복제거
- delphi 10.3
- PyCharm
- rank
- blog
- COMMIT
- 백준
- Django
- HTML
- declare
- MSSQL
- python 3.7
- GIT
- c#
- advColumnGrid
- Today
- Total
DevHyun
[DevHyun's Blog] Django&Python으로 만든 Blog에 로그인한 사용자만 글쓰게 만들기! 본문
[DevHyun's Blog] Django&Python으로 만든 Blog에 로그인한 사용자만 글쓰게 만들기!
D3V3L0P3R 2020. 10. 21. 20:45
Django Form 만들기(일반 사용자가 Post 수정 가능하게 만들기)
Django Form 만들기(일반 사용자가 Post 추가 가능하게 만들기) 에서 이어집니다. d3v3lop3r.tistory.com/24 Django Form 만들기(일반 사용자가 Post 추가 가능하게 만들기) 장고걸스 코치들과 자원봉사자들의 수
d3v3lop3r.tistory.com
Django Form 만들기(일반 사용자가 Post 수정 가능하게 만들기)
Django Form 만들기(일반 사용자가 Post 추가 가능하게 만들기) 에서 이어집니다. d3v3lop3r.tistory.com/24 Django Form 만들기(일반 사용자가 Post 추가 가능하게 만들기) 장고걸스 코치들과 자원봉사자들의 수
d3v3lop3r.tistory.com
위의 포스트에서 이어집니다!
장고걸스 코치들과 자원봉사자들의 수고로 번역된 글을 참고하였습니다.
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/
Components · Bootstrap
Extend form controls by adding text or buttons before, after, or on both sides of any text-based . Use .input-group with an .input-group-addon or .input-group-btn to prepend or append elements to a single .form-control. Textual s only Avoid using elements
getbootstrap.com
<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에 배포 하기!
Pythonanywhere 에서 Git Project Pull 한 후 재배포 하기
장고걸스 코치들과 자원봉사자들의 수고로 번역된 글을 참고하였습니다. tutorial.djangogirls.org/ko Blog App에서 수정사항이 있을경우 Pycharm에서 Commit-Push 한 후에 Pythonanywhere에서 pull 해줘야 동기화..
d3v3lop3r.tistory.com
'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 |