
contents / views.py 홈화면에는 상단 메뉴바, 게시글 올리기, 게시물들 목록으로 구성된다. 게시물 목록에는 내가 올린 게시물과 내가 팔로우하는 사람들의 게시물이 포함된다. 나의 FollowRelation 객체를 가져와서 그 중에 followee 필드 값의 id들을 리스트로 만들어 followees에 저장하여 내가 팔로우하는 사람들의 정보를 구한다. 내 아이디와 위에서 구한 followee 아이디 값을 lookup_user_ids 에 저장한다. lookup_user_ids 값으로 필터를 걸고, 그에 해당하는 게시글을 저장한다. home.html 템플릿과 함께 context를 렌더링한다. @method_decorator(login_required, name = "dispatch") class ..

이제 친구목록 페이지를 만든다. 이 페이지에는 나를 팔로우하는 사람, 내가 팔로우하는 사람을 출력하고, 원하는 사용자를 찾을 수 있도록 검색창으로 구성한다. contents / views.py 친구목록 페이지를 구성하는 로직이다. 장고에서 제공하는 TemplateView를 상속받아 template_name 에 지정된 템플릿으로 렌더링할 수 있도록 한다. 그 전에 get_context_data 함수를 이용하여 기존에 보내지던 데이터에 필요한 정보를 더 추가해서 템플릿으로 넘겨준다. 여기서 필요한 정보는 내가 팔로우하는 사람들, 나를 팔로우하는 사람들에 대한 정보이다. 내가 팔로우하는 사용자 찾기 try: 내가 주체가 되는 FollowRelation 객체에서 followee 값(=> 내가 팔로우하는 사람들)..

contents / models.py class FollowRelation(BaseModel): follower = models.OneToOneField(User, related_name = 'follower', on_delete = models.CASCADE) followee = models.ManyToManyField(User, related_name = 'followee') 인스타그램의 가장 큰 포인트인 팔로우 언팔로우 기능을 구현한다. 평소에 follower : 나를 팔로우하는 사람 followee : 내가 팔로우하는 사람 으로 나눠서 의미를 구분했지만 여기서는 follower , followee 의 의미보다는 follow 자체의 의미에 집중해서 생각하는 것이 더 이해하기 쉽다. FollowRel..

게시글에 대한 앱 'contents' 을 만든다. settings.py INSTALLED_APPS 에 추가하는 것도 잊지 않기 python manage.py startapp contents contents / models.py 인스타그램에 게시하는 게시물들 즉 컨텐츠에 대한 모델을 생성한다. 생성시간, 수정시간에 대한 추상화모델을 BaseModel로 만든다. from django.db import models from django.contrib.auth.models import User import os import uuid class BaseModel(models.Model): created_at = models.DateTimeField(auto_now_add = True) modified_at = m..

jiheestagram / urls.py urlpatterns = [ path('', TemplateView.as_view(template_name = 'home.html'), name = 'home'), path('login/', NonUserTemplateView.as_view(template_name = 'login.html'), name = "login"), path('logout/', UserLogoutView.as_view(), name = "logout"), ] 로그인 로그아웃 경로를 설정한다. 로그아웃은 사용자 접근을 제한할 필요가 없으니 그냥 View로 연결한다. 홈화면은 임시로 현재 로그인한 유저 아이디를 출력하도록 한다. templates / home.html {{ request.us..

jiheestagram / urls.py from django.contrib import admin from django.urls import path, include from django.views.generic import TemplateView from django.shortcuts import redirect class NonUserTemplateView(TemplateView): def dispatch(self, request, *args, **kwargs): if not request.user.is_anonymous: return reidrect('home') return super(NonUserTemplateView, self).dispatch(request, *args, **kwargs) ..
apis/views.py from django.shortcuts import render from django.views import View from django.utils.decorators import method_decorator from django.views.decorators.csrf import csrf_exempt from django.http import JsonResponse @method_decorator(csrf_exempt, name = "dispatch") class BaseView(View): @staticmethod def response(data = {}, message = '', status = 200): result = { 'data' : data, 'message' ..

Window에서 리눅스 인스턴스에 접속하려면 SSH포트를 이용해야 한다. 하지만 윈도우에서는 SSH 를 지원하지 않기 때문에, 윈도우에서 리눅스 인스턴스에 연결하기 위해서는 PuTTY 프로그램을 사용해야한다. (1) 퍼블릭 DNS - 연보라색 부분의 퍼블릭 DNS 값을 미리 저장해놓는 것이 좋다. (2) PuTTYgen.exe - Load 클릭 > 인스턴스를 생성하면서 만든 키 페어 파일 pem 로드 (3) PuTTY.exe - Connection > SSH > Auth > Browse > ppk 파일 선택 - PuTTYgen.exe 에서 생성한 ppk 파일 선택 - 이 때, 바로 Open 누르면 안된다. - 바로 Open 누르지 말고 Session 탭으로 넘어와서 (1) 에서 확인한 연보라색 퍼블릭 D..
- Total
- Today
- Yesterday
- 알파벳 카운팅
- 테이블출력안됨
- 장고 태그달기
- pythonanywhere배포
- 장고 게시판
- iOS 검은 화면
- Firebase 데이터베이스 추천
- django tag
- django 개발일지
- django pythoneverywhere
- Realtime Database
- django 게시판
- 웹 배포
- pythonanywhere배포방법
- 데이터베이스 추천
- 실시간 데이터베이스
- python 웹 배포
- ModelForm Form 차이
- CellForRowAt 호출안됨
- iOS UITableView 출력안됨
- cleaned_data
- django 로그인접근
- django 태그
- 까만 화면
- CellForRowAt Not Called
- iOS 데이터베이스
- UITableViewController Not Working
- Django
- iOS 화면 안나옴
- django clean
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |