일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Google Drive
- flask
- 알고리즘
- docker-compose
- 유튜브
- 파이썬
- venv
- 리스트
- 그리디 알고리즘
- selenium
- python
- 추천 영상
- 바로학교
- 단축어
- List
- Django
- 아이폰
- MongoDB
- DB
- 구글 드라이브
- gpu 병렬처리
- G-Suite
- pymongo
- 링크
- 충북
- 깃허브
- 장고
- nocookie
- 코딩
- 탐욕 알고리즘
- Today
- Total
목록python (12)
SSAMKO의 개발 이야기
docker로 python 이미지를 생성하고, requirements.txt를 이용해 pip install을 진행하다보면, pytorch같은 큰 라이브러리가 포함되어 있을 경우 kiilled 라는 에러메세지와 함께 종료되는 경우가 있다. 이런 경우 대부분 memory문제인데, docekr container에 기본적으로 memory가 1GB로 제한되어있어서 그렇다. 이를 해결해주려면, 아래와 같은 커맨드를 사용해 메모리를 늘려주면 된다. sudo docker run -it --memory=”[memory_limit]” [docker_image]예, sudo docker run -it --memory=”3g” myAppdocker-compose로 작성할때는 기존에 아마도 build: . 으로 되어있었을 부분..
api 개발 후 각 api의 응답시간을 체크해 성능지표를 만들고자 할 때, 간단히 사용할 수 있는 코드. unittest, pytest, locust 같이 테스트를 위한 도구들이 있지만, 간단히 응답 시간 정도만 체크하고 싶어서 작성한 코드입니다. import os import requests import datetime import time class valid_api: def __init__(self, count=10): self.host = 'http://localhost/' self.urls = [ 'schedule', 'segments/goods', 'rec_prod', 'rec_prod/user', 'rec_prod/user/hourly', ] self.result = dict() self.c..
외부에 API를 제공할때, 해당 URI로 아무나 접근하는 것을 막기 위해 간단하게 적용할 수 있는 방법으로 크게 두 가지가 있다. 첫번째로는 django settings.py에서 ALLOWED_HOST를 수정하여, white list를 구성하는 방법이 있는데, 이 방법은 소수의 제한적 접근을 허용할때는 유용하지만, 요청할 대상이 많아지면 힘들어진다. 이때는 간단히 토큰을 제공하는 방법으로 해결할 수 있다. 이 토큰을 여러 method에 손쉽게 적용할 수 있도록 데코레이터를 사용했다. # decorator.py from functools import wraps from django.core.exceptions import PermissionDenied def check_token(func): """Deco..
Django를 API서버로만 이용할 때, 외부 사용자들에게 header를 통해 인증정보를 받아야 할 경우가 있다. 이때, Test코드에서도 이를 처리해야 하는데, TestCase의 client에서 요청을 보낼때, from django.urls import reverse from django.test import TestCase class AircodeAPITests(TestCase): def test_schedule(self): url = reverse("send_schedule") header = {'HTTP_TOKEN':'afaew$@m#iow23!3@29fafewm@*'} response = self.client.post(url, **header) 위와 같이 client.post() 혹은 clien..
요즘 크롤링 할 일이 많은데, 시간이 오래걸려서 현재 진행상황을 파악하고자 간단한 진행상황 표시기를 만들어 보았습니다. import time sample = [x for x in range(10)] def some_process(x): return True total = len(sample) start = time.time() for i, some in enumerate(sample): some_process(some) now = time.time() print(f'\r{i+1}/{total} runtime: {now - start:.2f}', end='') # Use follow code if your python version is before v3.6 # print('\r{}/{} runtime: ..
python으로 손쉽게 API서버를 만들기 위해서 주로 flask를 많이 사용합니다. 플라스크 (웹 프레임워크) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 좀 더 큰 규모의 백엔드 서버를 위해서는 당연 django를 사용해야겠지만, 가벼운 API 몇 개만 운영하고자 할 때는 flask처럼 간편한 framework가 없습니다. 장고 (웹 프레임워크) - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 다른 뜻에 대해서는 장고 문서를 참조하십시오. 장고(Django, FAQ 발음으로는 "쟁고"(IPA: [ˈdʒæŋgoʊ])[2])는 파이썬으로 작성된 오픈 소스 웹 프레임워크로, 모델- ko.wikipedia.org flask를 API..
인스타그램 클론 코딩 중 이미지를 받아서 저장할 때, 모바일 특화 컨텐츠니까 굳이 큰 사이즈 이미지로 저장할 필요가 없겠다 싶어서 너비를 700픽셀로 리사이즈 할 필요가 있었다. # views.py def write(request): template_name = 'post.html' context = {} if request.method == 'POST': writer = request.POST.get('writer') text = request.POST.get('context') # 이미지는 option try: image = request.FILES['visitor_image'] # image resize required image = rescale(image, 700) except: image = ..
Q: 다운받은 파일을 열어보았더니 한글이 이상하게 되어있어요! A: 네, 윈도우 엑셀에서 해당 파일을 열면 기본적으로 한글이 제대로 안보이는게 맞습니다. 엑셀의 기본 인코딩은 cp949로 되어있고, 변환된 csv파일은 G-suite의 요구에 맞게 utf-8으로 인코딩 되어있어서 그렇습니다. 걱정마시고 업로드 하세요 ^^ 꼭 확인을 해보고 싶으신 분은 데이터 인코딩을 '유니코드(utf-8)'로 바꿔주시면 확인하실 수 있습니다. 2020.04.28.자로 충북 전체 학교에서 G-suite 계정을 손쉽게 사용할 수 있게 되었습니다. 학교별 계정이 아닌 도에서 충북 전체 학교 계정을 관리하는 방식인데요. 따라서, 각 학교별 계정 생성시 조금은 까다로울 수 있는 계정 생성 절차가 필요합니다. 학교별 코드를 이용해 ..