python 46

[구글 API] 구글 API를 통해 유튜브를 검색해보자 -1

이전 트위터 API 직후에 작성한다는것이 조금 늦어졌다. 구글은 다양한 API를 제공한다. 구글에서 지원하는 어플리케이션의 API나 지도를 사용할 수 있다. 우선, 트위터와 마찬가지로 개발자신청을 통해 권한을 얻어야하는데, https://console.cloud.google.com/getting-started 위 링크를 따라가면 이런 화면이 나온다. 이메일 업데이트는 빼고 위의 두개만 체크해도 정상적으로 넘어간다. 최상단에 제품/리소스검색창에 youtube data API를 검색해보자. 검색해서 나온 결과중에 맨 위에있는 Youtube Data API v3를 누르면 위와같은 화면이 나오고, 사용을 눌러서 API를 등록하자. 인고의 시간을 버텨내면 위와같은 대시보드가 보인다. 바로 사용할 수는 없고, 사용..

python/크롤링 2022.01.25

[파이썬] pandas 시간 구간을 그룹화해보자.

시계열 데이터를 만지다보면 빈 값도 있고, term이 제각각인 경우도 있다. 만약 time step이 1초라면 데이터도 어마어마하게 많을테니 이를 효과적으로 줄여보자. import pandas as pd import random df = pd.DataFrame() df['Time'] = pd.date_range('2021-01-01','2021-01-02',freq='1S') df['Color'] = random.choices(['Red','Blue','Green','White'], k=len(df)) df['Value'] = 1 위와 같이 데이터를 만들어보자. 무의식적으로 날짜를 적다보니 2021년 1월로 정했다. 코시국때문에 새해지만 새해같지않다. 각설하고 86401개의 데이터가 만들어지고, 색상과 ..

python/기초 2022.01.19

[파이썬 기초] 반복문을 뜯어보자. ( feat.왜 i? )

파이썬을 처음 시작할 때, 배우는 과정중에 반복문이 있다. 파이썬에선 다음과 같이 사용한다. for i in range(10): print(i) 따라하다보면 참 재미있다. 초심자의 입장에서 의문이 들만한 점은 왜 모든 기초 반복문에서 i를 사용할까? 이다. 왜 i를 넣으면 되고 다른건 안되나요? 등등 물어보는 일이 많다. 여기서 i는 반복자라고 하는데, i는 단순히 변수의 역할을 할 뿐, 특별히 큰 의미가 있는건 아니다. 즉 사용자에 따라, 데이터 타입에따라, 반복할 객체의 종류에 따라 다르게 설정할 수 있다. 예를들어, 위의 예제에서는 반복문이 한눈에 불 수 있을정도로 짧지만, 반복문이 길어진다면? 반복문 안에 또 반복문이 생기는 경우도 있을 수 있다. 만약 점수를 담은 리스트 scores = [100..

python/기초 2022.01.05

[Django] 12. 게시판 페이징 기능추가

지금이야 게시글 개수가 몇개 없지만, 늘어난다면 어떻게 될까? 장고 쉘을 이용해서 게시글 개수를 늘려보자. >>python manage.py shell from pybo.models import Question from django.utils import timezone for i in range(300): q = Question(subject='%03d 게시글'%i, content = '약오르지', create_date = timezone.now()) q.save() 페이징을 하지 않았으므로 스크롤이 굉장히 길어진다. 이제 페이징을 통해 화면을 개선해보자. from django.core.paginator import Paginator ... ... def index(request): ''' pybo 목..

python/Django 2021.12.29

[Django] 11. 네비게이션 기능 추가

기본 기능 외에 편의기능을 구현해보자. 메인페이지로 돌아가는 기능과 로그인기능을 추가할 것이다. templates/base.html를 열어 아래와같이 수정하자. {% load static %} Pybo 로그인 {% block content %} {% endblock %} navbar-brand에 Pybo로고를 만들어주고 클릭시 pybo:index로 이동하게 만들자. 위치는 맨 왼쪽이며, 그 오른쪽엔 로그인 링크를 추가 번호와 페이징은 추후에 다룰 예정이니 모른 척 넘어가고, Pybo와 로그인이 상단 좌측에 표시된것을 볼 수 있다. base.html은 모든 화면이 상속받고있기 때문에 어느 페이지를 들어가도 방금 추가한 네비게이션이 표시된다. 자, 여기서 화면을 작게 줄여보자. 로그인 표시가 사라지고 우측상..

python/Django 2021.12.29

[Django] 10 . 표준 HTML으로 만들기

책에서는 눈치챘는지 모르지만~ 으로 시작하지만 전혀 눈치채지 못 했다. 충격 표준 HTML 구조란 html, head, body 엘리먼트가 있어야하고, CSS 파일은 head 엘리먼트 안에 있어야하며 meta, title이 포함되어야 한다고한다. 이렇게 표준으로 바뀌면 중복되는 부분도 많고 수정하기위해선 하나하나 뜯어보고 고쳐야 한다. 하지만 장고는 상속기능을 제공해서 표준HTML 을 사용하고 템플릿 상속도 사용하자. templates/base.html 파일을 만들고 안을 다음과같이 채우자. {% load static %} {% block content %} {% endblock %} 엘리먼트에 block content / endblock가 있는데, 이 base.html을 상속받은 템플릿들이 저 자리를 ..

python/Django 2021.12.28

[Django] 9. 부트스트랩을 적용시키자.

웹 페이지를 더 예쁘게 꾸미기 위해서 CSS가 필수적이다. 하지만 거두절미하고 부트스트랩을 사용하면 더 편하게 꾸밀 수 있다. 우선, css파일은 모두 프로젝트 디렉터리에 static 폴더를 만들어 관리한다. static 폴더를 만든 다음 부트스트랩을 다운받자. 다음 링크에 들어가서 부트스트랩 설치파일을 내려받자. https://getbootstrap.com/docs/4.5/getting-started/download/ 다운받아서 당장은 전부 사용할 필요는 없고, bootstrap.min.css 파일만 방금 만든 static 폴더 안에 집어넣어주자. ( 다음에 사용할 수 있으니 지우진 말자 ) 그 다음 settings.py 파일을 열어서 static 경로를 추가해주자 #config/setting.py ...

python/Django 2021.12.27

[Django] 8. 답변기능 구현

URL 별칭을 통해 하드코딩을 없애주고, 질문등록과 조회기능을 구현했다. 이제 답변기능을 구현해보자. 답변기능은 question_detail.html파일을 수정하자. {{ question.subject }} {{ question.content }} {% csrf_token %} 답변등록을 통해 pybo:answer_create URL이며, question.id도 같이 보내준다. ( 아직 구현 전이다. ) form은 html에서 데이터를 모아주는 보자기라고 생각하면 된다. 이 form 안에 답변 내용을 담을 textarea를 만들어주고, 등록버튼을 통해 action에 있는 URL로 제출한다. 여기서 {% csrf_token %} 을 볼 수 있는데, 이 구문은 작성되서 전달하는 form이 실제로 웹 브라우저..

python/Django 2021.12.23

[Django] 7. URL 네이밍하기

URL 하드코딩을 없애보자. 그 전에 URL 하드코딩이란 뭘까? 우리가 만든 question_list.html에서 href태그를 한번 뜯어보자. {{ question.subject }} 이런 형태의 URL로 구성했는데, 만약 서비스를 확장하면서 question.id 앞이나 뒤에 다른 구분자 예를들면 /pybo/2/question or /pybo/question/2/ 처럼 구조를 변경했다고 치자. 그렇게되면 템플릿에 사용된 모든 href태그들을 하나하나 수정해줘야한다. 이렇게 하드코딩된 URL을 보기 쉽게 바꿔주기 위해서 URL 별칭을 사용해야한다. 간단하게 생각하면 URL을 하나의 변수로 만들어 템플릿에서 사용할 수 있도록 하는과정이다. pybo/urls.py 를 열어 수정하자. from django.u..

python/Django 2021.12.23

[Django] 6-1. 404는 어떻게 대처할까

우리도 가끔 보는 404에러 존재하지 않는 페이지에 접속하면 저 화면을 볼 수 있다. 만약 question_id에 312398등의 존재하지 않는 값을 넣어서 전달하면 404에러가 나타난다. 우리는 이 404를 좀 더 프로페셔널하게 다뤄보자. #pybo/views.py from django.shortcuts import render, get_object_or_404 # 404일 경우 from django.http import HttpResponse # http의 응답 from .models import Question from django.utils import timezone # Create your views here. # 응답 꾸러미들 ... def detail(request,question_id):..

python/Django 2021.12.22
반응형