분류 전체보기 27

django order_by 한글 정렬하기 (글자수 무시하고 가나다 순으로만)

기본적으로 django에서 쿼리셋 정렬할 때 아래와 같이 order by 사용하면 서 field 명을 적어주면 된다 Test.objects.order_by('name') 'abcd' -> 'bc' -> 'ccccccc' 하지만 한글 이름은 아래와 같이 가나다 순으로 정렬은 되지만 글자수를 우선으로 적용된다 '최영' -> '김아무개' -> '이무개' 데이터베이스 sql문으로는 collate "ko_KR.utf8" 를 붙여주면 되므로 django에서도 직접 함수를 만들어 정렬 해줘야 한다 my_order_func = Func( 'name', function='ko_KR.utf8', template='(%(expressions)s) COLLATE "%(function)s"') Test.objects.order..

괴발개발/Django 2022.09.27

django management 명령어 만들기 (python manage.py)

이 글에서는 django management 시스템에 내가 필요한 명령어를 만들고 사용하는 법을 정리한다. django 프로젝트를 만들다보면, 테스트를 위해 필요할 때마다 django shell을 통해서 일시적인 코딩이 필요할 때가 많다. 게다가 그 코딩을 반복적으로 사용해야 할 경우가 많은데, 그 때마다 django shell에서 같은 코드를 실행시키는 것이 꽤나 불편하고 비효율적일 수 있다. 사용할 코드 DB에 아이템을 하나씩 추가할 때마다 그 아이템을 확인하고자 하는 상황이다. django shell을 통해서 다음과 같은 코드를 통해 테스트를 할 수 있을 것이다. $ python manage.py shell >>> from myapp.models import MyModel >>> latest_ins..

괴발개발/Django 2022.07.18

마이리틀랭킹 사이트 소개 - 랭킹의 모든 것

안녕하세요 프리덤입니다~ 랭킹을 볼 수 있는 사이트가 있어서 소개드리려고 합니다 홈페이지 홈화면에서 랭킹들이 카드형식으로 보여지고 있네요 요즘 유튜버 순위에 관심이 있어서 검색하던 중 찾았어요 ㅎㅎ 마이랭킹?! 즐겨찾기 기능이 있어서 마이랭킹에 등록해놓으면 내가 원하는 랭킹카드만 볼 수 있더라구요 카테고리 별로, 키워드 별로 검색할 수도 있어서 검색도 할 수 있네요 더 많은 랭킹카드들과 앱으로도 업데이트 할 예정이라고 하니 자주 이용하려고 합니다 https://mylittleranking.com/ 마이리틀랭킹 나에게 필요한 나의 작은 데이터 랭킹 mylittleranking.com (아직 내게 필요한 랭킹이 부족해서 메일로 업데이트 해달라고 요청했...ㅋㅋ)

이러쿵저러쿵 2021.09.19

beautifulsoup와 selenium을 이용하여 스크롤이동 후 크롤링하기

제곧내 입니다~ element로 스크롤 이동 하는 코드 입니다~ html = driver.page_source soup = BeautifulSoup(html, 'html.parser') count = len(soup.select('.list_basis > div > div > li')) for idx, li in enumerate(soup.select('.list_basis > div > div > li'), start=1): this_li = driver.find_element_by_xpath('//*[@id="__next"]/div/div[2]/div[2]/div[3]/div[1]/ul/div/div['+str(idx)+']/li') # location = this_li.location_once_sc..

[Django] kakao social login allauth로는 안되는 증상

이번에 소셜로그인 기능에서 구글로그인과 같이 카카오로그인을 추가했다 django-allauth에서 구글로그인은 정상적으로 되었으나, 카카오 callback 함수에서 자꾸 오류가 나서 몇시간 삽질결과 현재 allauth에선 카카오 로그인 기능이 정상적으로 되자 않는 것 같다...(개삽질...) 어쩔 수 없이 카카오 로그인 함수는 기본 django.contrib.auth import login 기능으로 처리했다 login(request, user, backend='django.contrib.auth.backends.ModelBackend') backend는 allauth backend와 충돌하기 때문에 인자로 추가해야 한다 이 후 정상적으로 로그인 가능!!

괴발개발/Django 2021.08.07

[Django] User Group을 이용하여 권한을 부여해보자 (minxin사용)

django에서 user를 이용하여 view에 접근 권한을 주려면 여러방법이 있다 user마다 개인권한을 주는 방법이 있지만 그룹으로 권한을 주고 싶을 땐 django의 기본 셋팅되어있는 user group를 이용해 mixin을 만들어 view에 권한을 줄 수 있다 mixin.py 파일 생성 from django.core.exceptions import PermissionDenied class GroupRequiredMixin(object): """ group_required - list of strings, required param """ group_required = None def dispatch(self, request, *args, **kwargs): if not request.user.is_..

괴발개발/Django 2021.08.04

[django] duplicate key value violates unique constraint 오류 문제 해결

postgresql을 tableplus로 직접 조작하다가 아마 django 마이그레이션이랑 충돌이 난 듯 하다 ㅠㅠ python manage.py dbshell 창에서 아래 명령어를 입력하거나, DB에 접속해서 입력하면 reindex 된다~ SELECT setval(pg_get_serial_sequence('service_servicecategory', 'id'), max(id)) FROM service_servicecategory; (sequence를 따로 안만들어도 되는 방법)

괴발개발/Django 2021.08.03

[heroku] selenium 이용 시 buildpacks문제 해결 (google-chrome, chromedriver version) error

헤로쿠에서 잘되고 있던 selenium이 아래와 같이 문제 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 92 Current browser version is 91.0.4472.164 with binary path /app/.apt/usr/bin/google-chrome 삽질 결과 빌드팩은 문제 없으나 헤로쿠에서 빌드 시 캐시저장한 것이 문제였다 아래와 step과 같이 진행 빌드 캐시 지우기 Heroku Builds 플러그인 을 사용하여 앱의 빌드 캐시를 지울 수 있습니다 . 먼저 플러그인을 설치합..

괴발개발/heroku 2021.08.02

git push 할 때 오류해결 : The requested URL returned error: 403

파일 수정 후 commit 메시지를 쓰고, 파일을 올리려고(push) 하던 중 생긴 에러 문제> $ git push -u origin master 입력 후 # 응답메시지 - id: userId, Repository: myproject remote: Permission to userId/myproject.git denied to userId. fatal: unable to access 'https://github.com/userId/myproject.git/': The requested URL returned error: 403 분석> HTTP 403 Forbidden 클라이언트 오류 상태 응답 코드는 서버에 요청이 전달되었지만, 권한때문에 거절되었다는 것을 의미합니다. 이 상태는 401과 비슷하지만, 로..

괴발개발 2021.07.29

쿠팡 파트너스 API 인증 시 Specified signature is expired 문제 해결방법

처음에 파이썬 버젼에 문제가 있는 줄 알았는데 진짜 문제는 오류메시지 그대로, datetime에 현재시간 GMT 시간이 달라서 생긴 오류입니다 기존 코드에서 아래코드로 import 문과 함께 변경해주면 정상적으로 실행됩니다 기존 import time datetime = time.strftime('%y%m%d') + 'T' + time.strftime('%H%M%S') + 'Z' 변경 dateGMT = strftime('%y%m%d', gmtime()) timeGMT = strftime('%H%M%S', gmtime()) datetime = dateGMT + 'T' + timeGMT + 'Z' 다른 분들은 문제 없도록 파트너스 API 가이드 부분을 이 처럼 수정해주셨으면 좋겠다 ㅎㅎ

괴발개발/API 2021.01.30

셀레니움(selenium) session deleted because of page crash 문제 해결!

selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash from unknown error: cannot determine loading status from tab crashed 셀레니움을 이용해 크롬브라우져로 크롤링을 하다보면 위와 같은 오류 메시지가 출현 할 수 있다 이유는 크롬드라이버에 shm 메모리가 부족하여 나오는 문제인데 아래와 같이 option에 파라미터로 추가해주면 된다. chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') dri..

티스토리 API 사용하기 - 2021년ver

티스토리 API를 이용 해 파이썬(python)으로 글을 작성해보겠습니다! 급하신 분은 맨 아래 코드만 참고 하시면 됩니다~ 1. 아래 링크에서 앱 등록을 해주세요 TISTORY 나를 표현하는 블로그를 만들어보세요. www.tistory.com 2. 발급 받은 앱 아이디/키/CallBack URL 확인 3. 아래 링크에서 티스토리 오픈 API doc 확인 소개 · GitBook No results matching "" tistory.github.io OAuth 2.0방식으로 인증하는데... 그냥 간단하게 등록 된 callback url로 인증하는 방식입니다 우리는 글 작성에 필요한 부분만 아래서 다루고 자세한 내용은 링크로 이동해서 둘러보세요 4. 글 작성에 필요한 인증하기(Access Token 발급)..

괴발개발/API 2021.01.26