
1. 시크릿 키 분리 시크릿 키를 분리해야한다. 일단 아래의 사이트에서 시크릿 키를 발급받는다. https://miniwebtool.com/django-secret-key-generator/ Django Secret Key Generator Django Secret Key Generator miniwebtool.com manage.py 파일이 있는 경로에 secrets.json 이름의 파일을 만들어 아래와 같이 저장한다. { "SECRET_KEY" : "발급받은 키" } settings.py 에서 다음과 같이 시크릿키 적용 import json from django.core.exceptions import ImproperlyConfigured secret_file = os.path.join(BASE_DI..

● 태그 달기 - Post 객체에서 태그 필드는 TaggableManager() 모듈을 사용했다. 아래의 공식문서에서 모듈 사용법을 보고 따라했다. https://django-taggit.readthedocs.io/en/latest/api.html The API — django-taggit 1.2.0 documentation After you’ve got your TaggableManager added to your model you can start playing around with the API. Filtering To find all of a model with a specific tags you can filter, using the normal Django ORM API. For example..

● 게시물 댓글 post/models.py - 기존에 있던 class Post 밑에 추가한다. - 댓글 객체도 Post 객체와 마찬가지로 BaseModel을 상속받아 'created_at', 'modified_at' 필드가 추가된다. - 댓글은 누가 작성했는지 (User 객체), 어떤 게시글에 작성했는지 (Post 객체) 두 개의 필드에 대해서 외래키를 사용하며 댓글 내용은 TextField를 적용한다. class Comment(BaseModel): post = models.ForeignKey(Post, on_delete = models.CASCADE) user = models.ForeignKey(User, on_delete = models.CASCADE) content = models.TextField..

● 게시물 좋아요 버튼 post/views.py - 좋아요 버튼에 대한 로직. - 로그인한 사용자인 경우와 POST method인 경우에만 post_like 로직에 접근할 수 있다. - POST 요청된 페이지의 post_id 를 갖는 게시물 페이지를 확인하고 게시물 객체를 post에 저장 - 현재 게시글의 좋아요 필드에 사용자의 id 가 존재하는지 확인하여 Boolean 값으로 저장한다. - reverse 는 주소를 만들어준다. post_detail 에 post_id 를 추가해 'post_detail/post_id/' 경로를 만들어 현재 게시물로 이동하도록 한다. @login_required @require_POST def post_like(request): post = get_object_or_404(..

● 게시물 상세보기 post/views.py - post_list.html 글목록 페이지에서 해당 글을 클릭하면 'post_detail' 경로에 post_id를 함께 전달한다. - post_detail 에서는, get_object_or_404(모델, 키워드) Post 모델에서 post_id 가 존재하는 경우에는 객체를 가져오고 아니면 404 에러를 띄우도록 한다. - is_liked 는 좋아요 버튼이 눌려졌는지에 대한 변수로 디폴트 값은 False이다. - 만약 사용자가 좋아요 버튼을 눌렀는지(filter) 확인하여(exists) 좋아요를 눌렀다면 is_liked = True로 설정하여 나중에 좋아요 버튼을 취소할 수 있도록 한다. - 'post_detail.html' 템플릿과 함께 게시물 객체 post..

● 게시물 목록 post/views.py - 게시물 목록 관련 로직은 Post 객체를 모두 받아온 것을 html로 보내 나타낸다. - 최신순으로 정렬한 게시물들을 posts에 저장하고 'post_list.html'와 같이 렌더링한다. def post_list(request): posts = Post.objects.order_by('-created_at') return render(request, 'post_list.html', context = {'posts':posts}) templates/post_list.html - 역시 html은 어렵다. 좀 더 블로그스럽게 css를 변경했다. 이번에는 테이블에서 글 목록을 정렬하는 방식아니라 텍스트 형식으로 나타낸다. - a 태그를 사용하여 post-title ..

● 게시물 작성 post/views.py - 쇼핑몰 프로젝트에서는 직접 login_required를 만들어서 @mehod_decorator(login_required, name = 'dispatch')으로 접근 권한을 관리했다면, 이번에는 'django.contrib.auth.decorators' 장고 내장 모듈을 사용하여 @login_required으로 원하는 함수를 감싸서 해당 로직에 대한 접근을 관리한다. - POST 요청일 경우( 글을 작성하고 "저장하기" 버튼을 누른 경우), 사용자가 작성한 정보 title, content, image 에 대한 값을 가져오고 Post 객체 생성한다. - 게시물 객체를 생성하고, reverse 함수를 사용하여 현재 생성한 게시물의 상세페이지 주소를 만들고 redi..

● 포스트 모델링 helpers/models.py - abstract = True 를 설정하여 이 BaseModel이 추상 모델 클래스이라는 것을 명시한다. - 추상 모델 클래스는 여러 개의 모델 클래스들이 공통적인 정보를 가지도록 설정할 때에 사용한다. 추상 클래스는 DB에 테이블을 생성하지 않는다. 다만, 추상 클래스를 상속받는 자식 클래스의 테이블에 추가된다. from django.db import models class BaseModel(models.Model): created_at = models.DateTimeField(auto_now_add = True) modified_at = models.DateTimeField(auto_now = True) class Meta: abstract = Tr..
- Total
- Today
- Yesterday
- python 웹 배포
- 장고 태그달기
- django 태그
- iOS 화면 안나옴
- 알파벳 카운팅
- Realtime Database
- pythonanywhere배포
- django clean
- Firebase 데이터베이스 추천
- 데이터베이스 추천
- Django
- iOS 데이터베이스
- cleaned_data
- ModelForm Form 차이
- django pythoneverywhere
- CellForRowAt Not Called
- django 게시판
- django 로그인접근
- 장고 게시판
- iOS 검은 화면
- 까만 화면
- 테이블출력안됨
- iOS UITableView 출력안됨
- django tag
- 웹 배포
- CellForRowAt 호출안됨
- 실시간 데이터베이스
- django 개발일지
- UITableViewController Not Working
- pythonanywhere배포방법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |