목록전체 글 (81)
MyPrograming

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..

Q. 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다. answer = [] def solution(arr1, arr2): for i in range(len(arr1)): result = [] for j in range(len(arr1[i])): result.append(arr1[i][j] + arr2 [i][j]) answer.append(result) return answer 이중리스트는 행렬로 볼 수 있다. 그 행렬의 요소에 각각 접근하기 위해서 이중 for문으로 코드..

Q. 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. s는 길이 1 이상, 길이 8 이하인 문자열입니다. def solution(s): string = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] s_list = list(s) #문자열 's'를 하나씩 쪼개지는 리스트로 변환 is_break = True #이중 for문을 빠져나오기 위해 설정해둠. if len(s) == 4 or len(s) == 6: for..

Q. 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 배열 arr의 크기 : 1,000,000 이하의 자연수 배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작..

포스팅 수정, 삭제 기능을 구현했을 당시, 디테일 페이지에서 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. Ajax란? Ajax는 JavaScript의 라이브러리중 하나이며 Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자이다. 브라우저가 가지고있는 XMLHttpRequest 객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드하는 기법 이며 Ajax를 한마디로 정의하자면 JavaScript를 사용한 비동기 통신, 클라이언트와 서버간에 XML 데이터를 주고받는 기술이라고 할 수 있다. 1-1. Ajax를 사용하는 이유? 기본적으로 HTTP프로토콜은 클라이언트쪽에서 Request를 보내고 Server쪽에서 Response를 받으면 이어졌던 연결이 끊기게 되어있다. 그래서 화면의 내용을 갱신하기 위해서는 다시 request를 하..

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..