Django | 장고 앱 생성하기(startapp)
·
Django
모든 장고 프로젝트는 1개 이상의 앱으로 구성되어 있다. 장고에서 앱은 특정 기능을 수행하는 단위 모듈을 의미한다. ex) 방명록 기능, 갤러리 기능 등 앱을 만들기 위해서는 다음과 같은 명령어를 입력하면 된다. python manage.py startapp (앱 이름) single_pages라는 이름의 앱을 만드는 명령어이다. 이 명령어를 실행하면 아래 사진과 같이 디렉터리(dir)에 single_pages라는 이름의 새로운 폴더가 생긴 것을 볼 수 있다. 파이참에서도 새로운 폴더가 생겼음을 확인할 수 있으며, 새로 생긴 앱에는 admin, apps, models, test, views와 같은 파일이 생성되어 있다. 참고: Do it! 장고+부트스트랩 파이썬 웹 개발의 정석
Django | 장고 마이그레이션(migrate, makemigrations)
·
Django
장고 프로젝트를 처음 생성하면 디렉터리(dir)에는 다음과 같은 파일과 폴더가 존재할 것이다. 프로젝트가 잘 생성되었는지 확인하기 위해 서버를 실행하면 다음과 같은 오류 메시지가 나타난다. python manage.py runserver 이 오류 메시지는 아직 18개의 마이그레이션이 있다는 의미이다. 장고에서 마이그레이션(migration)이란 데이터베이스에 적용시켜야 하는 변화에 대한 기록이다. ex) 댓글 기능이 없던 블로그에 댓글 작성 기능을 추가했을 때, 데이터 베이스에 댓글을 저장하기 위한 공간인 테이블이 필요하다. 이를 데이터베이스에 반영해야 서버를 실행했을 때 웹사이트에 추가한 댓글 기능을 제대로 사용할 수 있다. 장고는 새 프로젝트를 생성할 때 데이터베이스에 기본적으로 필요한 테이블을 미리..
프로그래머스 | 피보나치 수 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 import sys sys.setrecursionlimit(10**6) def fibo(x): if x == 0: return 0 elif x == 1: return 1 else: return fibo(x-1) + fibo(x-2) def solution(n): return fibo(n) % 1234567 문제 이름을 보자마자 피보나치 함수 정도는 쉽게 구현할 수 있지!라고 생각했지만 결과는 처참했다. 런타임 에러도 아닌 시간초과를 맞닥뜨려 너무나 당황스러웠다. 어떻게 해결해야 할지 하나도 ..
프로그래머스 | 숫자의 표현 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(n): answer = 0 # 연속된 자연수로 n을 표현하는 방법의 수 for i in range(1, n+1): hap = 0 # hap이 n보다 크거나 같아질 때까지 i부터 순차적으로 더함 while hap < n: hap += i i += 1 if hap == n: # 만약 hap이 n과 같으면 연속된 자연수로 나타낼 수 있으므로 방법 +1 answer += 1 return answer 자연수 n을 연속된 자연수로 표현할 수 있는 가짓수를 구하는 문제이다. 예를 들어, n=1..
프로그래머스 | 최솟값 만들기 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 def solution(A,B): answer = 0 for i in range(len(A)): a = A.pop(A.index(min(A))) b = B.pop(B.index(max(B))) answer += a * b return answer 두 배열에서 뽑은 각각의 원소의 곱의 누적합이 최소가 되는 경우의 값을 구해야 하는 문제이다. 문제의 예시를 보며 한쪽 리스트에서는 최솟값을 순서대로 고르고, 다른 쪽 리스트에서는 최댓값을 순서대로 고르는 경우가 정답이라고 생각하게 되었다. 그래서 ..
python | capitalize(), title() 함수 비교
·
TIL/python
파이썬 문자열 함수 중 대문자로 바꾸는 함수인 upper()와 capitalize(), title()을 예시를 통해 비교해보고자 한다. 문자열 s1='abc'가 있을 때 각 함수를 적용한 결과는 다음과 같다. upper() 함수는 모든 문자열을 대문자로 바꾸고, capitalize()와 title()은 문자열의 맨 앞글자만 대문자로 바꾼다. 그럼 capitalize()와 title()은 같은 역할을 하는 것일까? s2='abc def'와 같이 공백이 있는 경우의 capitalize()와 title() 함수 적용 결과는 다음과 같다. capitalize() 함수는 문자열 s2의 맨 앞글자인 a만을 대문자 A로 바꾼 반면, title() 함수는 공백을 기준으로 문자열을 분리한 듯 a와 d를 각각 대문자 A,..