목록파이썬 (28)
기록과 정리의 공간
참고 링크 링크 인프런 강의 0. 파이썬의 메서드 종류 메서드는 클래스의 행위를 표현하는 것으로 클래스 내의 함수로 볼 수 있다. 파이썬에서 메서드는 크게 3가지로 볼 수 있다. 인스턴스 메서드(instance method) : 아래 1번에서 자세히 설명 정적 메서드(static method) : 아래 2번에서 자세히 설명 클래스 메서드(class method) : 아래 3번에서 자세히 설명 1. 인스턴스 메서드(instance method) 가장 흔히 쓰이는 것으로, 인스턴스 변수에 엑세스할 수 있도록 첫 번째 인자에 항상 객체 자신을 의미하는 self파라미터를 갖는다.(self이외에도 여러개의 파라미터를 가질 수 있다.) 해당 메서드를 호출한 객체에만 영향을 미친다. 객체 속성에 접근이 가능하다. 호..
Flask로 게시판 만들기 - 6 (참고 강의 링크-인프런 강의) (공부 하며 기록이 필요한 부분들만 정리함) 개발 환경 : windows 10 / Python 3.8.1 / vscode 로그인한 유저만 글쓰기 가능하게 하기 글 수정 기능 추가하기 글 삭제 기능 추가하기 글 조회수 증가 시키기 1. 로그인한 유저만 글쓰기 가능하게 하기 이 포스트와 이어짐 글쓰기 버튼을 누르면 로그인한 사용자에 한하여 글쓰기 페이지로 이동하고, 로그인되어 있지 않다면 로그인 페이지로 이동하게 한다. 로그인이 성공하면, 로그인 전에 사용자가 요청했던 페이지로 이동시키도록 한다. 데코레이터 활용(with functools모듈) : 글쓰기 기능 뿐만 아니라 기타 기능 사용을 위해 유저에게 로그인을 요구하기 위해, 함수마다 로그..
TIL - 인프런 강의를 듣고 공부한 내용을 정리(강의 링크) 공부한 내용 pymysql 실습 - INSERT / UPDATE / DELETE pymysql 실습 - SELECT 1. pymysql 실습 - INSERT / UPDATE / DELETE (링크)의 1번과 동일한 패턴으로 작성하면 된다. 예시코드(참고) - 데이터 여러개 한번에 넣기(INSERT) import pymysql # localhost = 자기 pc를 가리킴 (or 127.0.0.1) # mysql의 default 포트번호 3306 db = pymysql.connect(host='localhost', port=3306, user='root', passwd='설정한패스워드', db='..
백준 9251번 : LCS(문제 링크) 사용 언어 : 파이썬(Python) 문제 유형 : 동적 프로그래밍(DP), LCS 난이도 : 하 소스코드 import sys x = sys.stdin.readline().rstrip() y = sys.stdin.readline().rstrip() D = [[0] * (len(y)+1) for _ in range(len(x)+1)] for i in range(1, len(x)+1): for j in range(1, len(y)+1): if x[i-1] == y[j-1]: D[i][j] = D[i-1][j-1] + 1 else: D[i][j] = max(D[i][j-1], D[i-1][j]) print(D[len(x)][len(y)]) 설명 최장 공통 부분 수열(LCS..
백준 11053번 : 가장 긴 증가하는 부분 수열(문제 링크) 사용 언어 : 파이썬(Python) 문제 유형 : 동적 프로그래밍(DP), LIS 난이도 : 하 소스코드 import sys n = int(sys.stdin.readline()) array = list(map(int, sys.stdin.readline().split())) D = [1] * n for i in range(1, n): for j in range(0, i): if array[j] < array[i]: D[i] = max(D[i], D[j] + 1) print(max(D)) 설명 가장 긴 증가하는 부분 수열(LIS) 문제는 전형적인 DP문제이다.(반드시 알아두기!) 수열의 크기가 n일 떄, 기본적인 DP알고리즘으로 O(n^2)에 해..
(datetime모듈 - 공식 문서 링크) datetime.timedelta 객체 datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0) timedelta 객체는 두 날짜나 시간의 차이인 기간을 나타낸다. "지금부터 1천 시간 후는 몇 년 몇 월 몇 일 몇 시일까?" 와 같은 질문에 답하는 것에 timedelta 객체를 사용할 수 있다. 인자로 주, 일, 시, 분, 초, 마이크로초 등을 매개변수로 지정하여 인스턴스화 할 수 있다. 인자를 넘길 때에는 여러 가지 단위를 선택하여 지정할 수 있지만, 생성된 timedelta 객체 내부에서는 기간을 일, 초, 마이크로초 의 세 단위로 환산하..
Flask로 게시판 만들기 - 5 (참고 강의 링크-인프런 강의) (공부 하며 기록이 필요한 부분들만 정리함) 개발 환경 : windows 10 / Python 3.8.1 / vscode 로그인 기능 구현하기 (세션 활용) 1. 로그인 기능 구현하기 (세션 활용) ★ HTTP는 클-서간의 연결 상태를 계속 유지하지 않는 무상태(stateless) 프로토콜이다. 즉, 요청 간 사용자 데이터를 저장하는 수단을 제공하지 않는다. 따라서, 세션(은 기본적으로 하나의 요청 정보를 다른 요청에서 기억하게 해줌)을 활용하여 서버에서 클라이언트를 특정할 수 있도록한다. Flask - 세션(Sessions) 활용하기 : (공식 문서 링크) 현재 세션에 접근하기 위해서는 flask의 session객체(flask.sessi..
1. 메시지 플래싱(Message Flashing) 플래싱 시스템은 기본적으로 요청의 끝에 메시지를 기록하고 그 다음 요청에서만 그 메시지에 접근할 수 있게 한다. 보통은 플래싱을 처리하는 레이아웃 템플릿과 결합되어 사용된다. (참고 링크) 2. flask.flash() / flask.get_flashed_messages() (API문서 링크) 메세지를 flash 하기 위하여 flash() 메소드를 사용하고 메세지를 가져오기 위하여 템플릿에서 사용할 수 있는 get_flashed_messages() 메소드를 사용할 수 있다. (참고 링크) 예제 코드 메시지 플래싱 기능을 사용하기 위해서는 SECRET_KEY를 반드시 설정해줘야 한다. 파이썬코드에서 flash()에 원하는 메시지를 인자로 넘겨준다. tes..