본문 바로가기

전체 글38

[3주차-2] 장고를 활용한 API서버 만들기 - 에러 처리하기, 커스터마이징 하기 에러 처리하기 404에러 처리하기 polls/views.py에서 from models.py import * from django.http import HttpResponse from django.http import Http404 from django.shortcuts import render , get_object_or_404 #장고에서 기본 제공되는 에러 처리 툴 ... def detail(request, question_id): """ try: question = Question.objects.get(pk=question_id) except Question.DoesNotExist: raise Http404("Question does not exist") """ #위의 4줄이 다음 코드 한줄로 대체 .. 2023. 4. 29.
[3주차-2] 장고를 활용한 API서버 만들기 - view 다루기 view polls/views.py에서 from .models import * from django.shortcuts import render def index(request): latest_question_list = Question.objects.order_by('-pub_date')[:5] #날짜 순으로 최신 5개 질문 리스트 context = {'first_question': latest_question_list[0]} #첫번째 질문 딕셔너리 return render(request, 'polls/index.html', context) #render는 html파일을 그려주는 역할 polls/templates/polls/index.html에서 참고) html에서 변수를 인식하려면 {{변수}}꼴이어야 .. 2023. 4. 29.
[3주차-1] 장고를 활용한 API서버 만들기 - 장고 admin, 모델 필터링 장고 admin admin 페이지란 관리자들이 데이터를 수정하는 페이지 CRUD: 만들고(Create) 읽기(Read) 업데이트하거나(Update) 지우기(Delete) admin에 접속할 수 있는 사용자 만들기 명령 프롬프트에서 python manage.py createsuperuser # id 입력 # ps 입력 python manage.py runserver url에 /admin을 붙여서 접속하고 설정했던 id와 ps를 입력하기 지우기(Delete) 명령 프롬프트에서 python manage.py migrate polls 0001 입력하면 원래 상태였던 polls 0001로 돌아감. (이때 추가했던 모델들을 모두 삭제해야 된다. 삭제하지 않으면 url 접속 시 해당 모델을 찾을 수 없다는 오류가 난.. 2023. 4. 29.
[3주차-1] 장고를 활용한 API서버 만들기 - Django 시작하기 Django를 이용하여 API를 만들어보는 실습을 진행하였는데 이번주부터 진행하는 내용은 진짜 '개발'에 가까운 내용이어서 많이 생소하고 따라가기 벅찼다. 강의 초반부터 명령 프롬프트에서 pip할 때마다 접근 권한이 없다고 나오길래 3시간 동안 해결책을 찾아보다가 과거에 깔아 놓았던 파이썬을 다 지우고 새롭게 설치했다.. 프로젝트를 시작하기 전 기본 설정하기 우선 cmd에서 파이썬 가상 환경을 만들고 활성화시켜준다. 가상 환경을 만들어 진행하는 이유는 서로 다른 유형과 목적의 프로젝트들을 한 공간에 넣어서 관리한다면, 매번 하나의 프로젝트를 실행할 때마다 그에 맞춰서 환경을 체크하고 변경해주어야 하며 심한 경우에는 프로젝트 간의 충돌이 발생할 수도 있기 때문이다. # 가상 환경을 만드는 코드 py -m .. 2023. 4. 25.
[2주차-5] 파이썬으로 웹 다루기 - 데이터 시각화 Seaborn `seaborn`은 파이썬의 데이터 시각화 라이브러리이며 이를 기반으로 수려한 그래프를 그릴 수 있다. %pip install seaborn import seaborn as sns #꺾은선 그래프 그리기 sns.lineplot(x=[1, 3, 2, 4], y=[4, 3, 2, 1]) #막대 그래프 그리기 sns.barplot(x=[1,2,3,4],y=[0.7,0.2,0.1,0.05]) plot의 속성 import matplotlib.pyplot as plt sns.barplot(x=[1,2,3,4],y=[0.7,0.2,0.1,0.05]) plt.title("Bar plot") # 제목 달기 plt.xlabel("X Label") # x축 설명 달기 plt.ylabel("Y Label") #.. 2023. 4. 21.
[2주차-4] 파이썬으로 웹 다루기 - Selenium Selenium Selenium은 Python을 이용해서 웹 브라우저를 조작할 수 있는 자동화 프레임워크이다. 이를 사용하기 위해서는 pip install을 통해서 먼저 selenium 프레임워크를 설치해야 한다. %pip install selenium %pip install webdriver-manager from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager 여기까지는 어떻게 잘 돌아갔는데... driver = webdriver.Chrome(service=Service(ChromeDriverManager(.. 2023. 4. 20.
[2주차-3] 파이썬으로 웹 다루기 - 원하는 요소 가져오기 BeautifulSoup 1) 웹사이트에서 확인: 특정 요소가 어떤 태그로 감싸져 있는지 확인하기 사이트에서 F12버튼을 통해 개발자도구에 접속해서 확인할 수 있고, 마우스 오른쪽 버튼을 눌러서 '검사'를 통해 확인할 수 있다. 2) BeautifulSoup 객체 만들고 참조하기 %pip install bs4 import requests from bs4 import BeautifulSoup res = requests.get("http://www.example.com") # 첫번째 인자로는 response의 body를 텍스트로 전달한다. # 두번째 인자로는 "html"로 분석한다는 것을 명시해준다. soup = BeautifulSoup(res.text, "html.parser") print(soup.pre.. 2023. 4. 19.
[2주차-2] 파이썬으로 웹 다루기 - HTTP HTTP(Hypertext Transfer Protocal) 웹 상에서 정보를 주고 받기 위한 약속 파이썬에서 request 라이브러리로 HTTP 통신 진행하기 get: 정보를 달라고 요청하기 # `%`를 이용해서 노트북(.ipynb) 환경에서 터미널 코드를 실행할 수 있습니다. %pip install requests import requests res = requests.get("https://www.naver.com") res.headers # Header를 확인하기 res.text[:1000] # Body를 텍스트 형태로 확인하기 post: 정보를 보내기 ex) 로그인 하기 https://webhook.site : 정보 교환을 확인할 수 있는 사이트, 컴퓨터마다 고유주소를 만들어준다. # paylo.. 2023. 4. 19.
[2주차-1] 파이썬으로 웹 다루기 - HTML HTML은 콘텐츠를 가지는 태그와 가지지 않는 태그로 나뉜다. 1) 콘텐츠를 가지는 태그: 열리는 태그(시작태그) + 콘텐츠 + 닫히는 태그(종료테그) ex) 콘텐츠 2)콘텐츠를 가지지 않는 태그: 단일 태그 cf) />: 단일태그를 위한 셀프 클로징 html의 기본구조는 다음과 같다. 인라인인라인 옆에 글자 나는 블록 이제부터 head, body, 레이아웃, 콘텐츠 순서로 살펴보자. 사람 눈에 보이지 않는 “문서의 정보”가 담기는 영역 1) 타이틀: 제목 2) 메타 데이터: 인코딩 정보, 문서 설명, 문서 작성자 *charset은 문서에서 허용하는 문자의 집합이다. charset에 선언된 “문자의 집합” 규칙에 따라 문서에서 사용할 수 있는 문자가 제한된다. 따라서 모든 언어를 사용할 수 있는 인코딩을.. 2023. 4. 18.
[1주차-5] 코딩테스트 연습 - 힙, DFS/BFS, 동적 계획법(Dynamic Programming) 힙(Heap) 힙 알고리즘을 이용하면 최대와 최소를 빠르게 찾을 수 있고 일반적으로 완절 이진 트리(배열로 구현 가능)로 구성된다. 문제에서 리스트 내의 원소를 모두 정렬하지 않고 최대나 최소만을 필요로 할 때, 효과적으로 사용될 수 있다. max heap: 최대의 원소를 빠르게 꺼내는 방법 min heap: 최소의 원소를 빠르게 꺼내는 방법 힙 연산: 힙 구성(NlogN), 삽입 O(logN), 삭제(logN) 힙의 응용: 정렬(heapsort), 우선 순위 큐 #파이썬에서 힙의 적용 import heapq L = [1,2,3,4,5] x = 7 heapq.heapify(L) #리스트 L로부터 min heap 구성 m = heapq.heappop(L) #min heap L에서 최소값 삭제(반환) hea.. 2023. 4. 14.
[1주차-4] 코딩테스트 연습 - 해시, 그리디, 정렬 알고리즘 해시 파이썬에서는 딕셔너리만 가지고 해시함수를 간단히 구현할 수 있다. 해시를 이용하면 데이터가 key-value꼴로 묶이므로 데이터에 대한 탐색이 O(1)에 끝난다는 장점이 있다. 반면 리스트를 이용하면 리스트 전체를 탐색해야 하므로 O(n)의 시간이 소요된다. 예를 들어 파이썬의 in 매소드를 사용할 때, 딕셔너리는 k라는 값이 key에 존재하는지 dic[k]를 함으로써 바로 알아낼 수 있지만 리스트에서는 리스트의 처음부터 끝까지 탐색해보아야 한다. 대신 딕셔너리 자료구조는 데이터 간의 순서가 없다. 그래서 딕셔너리는 주로 순서가 필요 없는 알고리즘과 함께 쓰이곤 한다. 다음 예시 문항을 통해 해시의 쓰임을 익혀보자. 완주하지 못한 선수 ✅ 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. .. 2023. 4. 13.
[1주차-3] 코딩테스트 연습 - 큐, 트리, 힙(3) 2023. 4. 13.
[1주차-3] 코딩테스트 연습 - 큐, 트리, 힙(2) 2023. 4. 13.
[1주차-3] 코딩테스트 연습 - 큐, 트리, 힙(1) 2023. 4. 13.
[1주차-2] 코딩테스트 연습 - 연결리스트와 스택(3) 스택 스택은 넣을 때(push)는 한쪽 끝에서 밀어 넣어야 하고 꺼낼 때(pull)는 같은 쪽에서 뽑아 꺼내야 하는 제약이 있는 자료를 보관할 수 있는 선형 구조이다(후입선출 구조). 스택 언더플로우(stack underflow): 꺼낼 원소가 없을 때 pull 스택 오버플로우(stack overflow): 스택이 가득 차 있을 때 push 스택의 연산 1) size(): 현재 스택에 들어 있는 데이터 원소의 수를 구함 2) isEmpty(): 현재 스택이 비어 있는지를 판단 3) push(x): 데이터 원소 x를 스택에 추가 4) pop(): 스택의 맨 위의 저장된 데이터 원소를 제거하고 반환 5) peek(): 스택의 맨 위의 저장된 데이터 원소를 반환하는데 제거 x 스택의 추상적 자료구조 구현 1).. 2023. 4. 11.