목록Python/python 클론코딩 (15)
MyPrograming

인스타그램에서는 해시태그를 통해서 검색이 이루어진다. urls.py re_path(r'^search/$', searchView, name='search'), searchView.py def searchView(request): cursor = connection.cursor() keyword = request.GET.get("keyword") if '#' not in keyword: keyword = '#' + keyword[0:] search_sql = "SELECT post_id, post_hashtag.hashtag_id" search_sql += " FROM post_hashtag" search_sql += " LEFT OUTER JOIN hashtag on hashtag.hashtag_id = ..

post_createView.py def post_createView(request): if request.method == "GET": return render(request, 'post_create.html') if request.method =="POST": user = request.user cursor = connection.cursor() # POST 내용 INSERT content = request.POST.get('content') post_img = request.FILES.get('post_img') hashtag = request.POST.get('hashtag') post_img_url = fileUpload(user, post_img) split_hashtag = hashtag.s..

3. 콜렉션 (공유) 기능구현 urls.py re_path(r'^collection/(?P\d+)/$', collectionView, name='collection'), 게시글의 주키인 id만 필요하므로 "d+" 패턴을 주었다. collectionView.py def collectionView(request, post_id): user = request.user cursor = connection.cursor() is_collection = "SELECT COUNT(*)" is_collection += " FROM collection" is_collection += " WHERE user_id = (%s) AND post_id = (%s)" is_collection_result = cursor.execu..

2. 좋아요 기능 구현 urls.py re_path(r'^like/(?P\d+)/$', likeView, name='like'), likeView.py def likeView(request, post_id): user = request.user cursor = connection.cursor() is_like = "SELECT COUNT(*)" is_like += " FROM like_post" is_like += " WHERE user_id = (%s) and post_id = (%s)" is_like_result = cursor.execute(is_like, (user.username, post_id)) is_like_datas = cursor.fetchall() if is_like_datas[0][..

1. 팔로우 / 언팔로우 기능 구현 urls.py re_path(r'^follow/(?P[ㄱ-힣a-zA-Z0-9-_.]*)/$', followingView, name='follow'), 뷰의 실행을 위해 url (패턴) 지정 팔로우 / 언팔로우는 대상 유저의 user_id를 필요로 하기때문에 "[ㄱ-힣a-zA-Z0-9-_.]"로 패턴을 주어 어떤 경우의 글자 패턴이든 받아서 넘길 수 있도록 한다. followingView.py def followingView(request, follow): user = request.user cursor = connection.cursor() follow_button = "SELECT COUNT(*)" # 방문된 유저가 로그인된 유저에게 팔로우가 되있는지 구분 follo..

포스팅 수정, 삭제 기능을 구현했을 당시, 디테일 페이지에서 modal pop-up 기능을 사용한 것 처럼, 실제 인스타그램 페이지처럼 구축하기 위해서 포스팅 리스트 페이지에서 해당 유저의 팔로워 / 팔로잉 유저 목록을 모달 페이지로 띄우기로 했다. 리스트 페이지에서 팔로워 혹은 팔로우 글자를 클릭하게 되면 아래와 같이 Modal 팝업으로 유저 목록이 띄워진다. Modal 페이지에 띄워지는 데이터 def post_listView(request, list): user_id = request.user following_list = "SELECT profile_msg, profile_img_src, following_id, user_id" #클릭된 유저의 팔로잉 유저 목록 following_list += " ..

1. 포스팅 수정 상단 우측에 Modal 팝업을 만들어서 수정 및 삭제 작업을 할 수 있도록 구축하였다. Modal Pop-up? : 버튼이나 사진을 클릭 했을때 튀어나오는 나오는 화면을 modal pop-up 이라고 한다. 쉽게 말해서, 인스타그램이나 페이스 북에서 사진을 클릭 했을 때, 화면 전환 없이 해당 페이지에서 팝업 창이 뜨는 것을 말한다. modal pop-up의 특징으로는 페이지가 넘어 가지 않으므로 작은 크기의 팝업 창이 화면 중앙에 위치한다. 포스팅을 업로드 했을 당시의 데이터가 입력 칸에 띄워져 있으며, 이를 지우거나 수정하여 입력하면 그 데이터가 DB에 새롭게 입력되어 들어가도록 post_modifyView.py의 코드를 작성하였다. @login_required def post_mo..

1. 포스팅 업로드 {% csrf_token %} {% comment %} {% endcomment %} Upload 파일을 선택해주세요. 글 올리기 @login_required def post_createView(request): if request.method == "GET": return render(request, 'post_create.html') if request.method =="POST": user = request.user cursor = connection.cursor() # POST 내용 INSERT content = request.POST.get('content') post_img = request.FILES.get('post_img') hashtag = request.POST.g..