Coding/Python
-
[django] Model IntegerField에 최소/최대값 지정하기Coding/Python 2021. 1. 19. 18:49
안녕하세요. 오늘은 장고의 Model을 사용하면서 정수를 입력받는 IntegerField에서 최소/최댓값을 지정하는 방법에 대해 포스팅합니다. 👀 배경 저는 장고의 기본 어드민을 그대로 사용하고 있기 때문에, validation 처리를 하면서 장고의 기능을 전적으로 활용하는 수 밖에 없었습니다. 그러던 와중 정수의 최소, 최댓값을 0~5로 지정해야 하는 이슈가 발생했습니다. help_text를 이용하면 사용하는 유저에게 0~5 사이 값을 입력해야 한다고 권고할 수는 있지만, 확실한 validation 처리는 불가능했습니다. class Post(models.Model): num = models.IntegerField("숫자", default = 0, help_text="0~5사이 값으로 입력하세요") 저만..
-
[django] Admin 페이지를 이쁘게 커스텀해보자 1) 한글화, CSS, HTML 접근하기Coding/Python 2020. 12. 6. 22:06
안녕하세요. 오늘은 장고에서 기본으로 제공하는 Admin 페이지를 커스텀하는 방법에 대하여 포스팅합니다. 🧐 배경 제 프로젝트의 관리자 페이지는 장고의 Admin 템플릿을 그대로 사용하고 있습니다. 우선 장고의 ORM 방식을 채택한 DB Modeling을 사용하고 있다면, Admin에서 대부분의 CRUD 작업과 나아가 유저 관리, 권한 부여 등 아주 일반적인 기능을 모두 제공합니다. 빠르게 웹 페이지를 빌드하고 DB를 관리해야 한다면 굳이 관리자 페이지를 따로 제작하기보다 장고의 Admin을 그대로 사용해도 무방합니다. 물론 불편함은 존재합니다. 기본 Admin 페이지에 접속해 봅시다. 👇아직 Admin 페이지를 연결하지 않았다면, 잘 정리된 다음 포스팅을 참고해주세요! doorbw.tistory.com..
-
[Python] 파이썬에서 명령 프롬포트(cmd) 명령어 실행시키기 - 현재 경로 내 파일 리스트 출력하기Coding/Python 2019. 11. 8. 15:17
Python os 라이브러리 사용하기 파이썬에는 os라는 라이브러리가 존재합니다. 이는 운영체제에서 관리하는 다양한 기능을 다룰 수 있도록 해주는 라이브러리입니다. (클립보드, cmd, Window 시계 등등..) 그중 cmd 명령어를 직접 이용하여 python 코드 내에 적용시킬 수 있다는 것이 신기하여, 간단한 예제로 알아보도록 하겠습니다. (subprocess 라이브러리를 이용하기도 하지만, 이번 포스팅에서는 os 라이브러리로 다루겠습니다) 우선 os 라이브러리를 import 합니다. # os 라이브러리 import import os os 라이브러리에서 cmd 명령어를 사용할 때는 os.system()을 사용합니다. 우선 현재 폴더로 이동을 해야겠죠? 현재 폴더의 경로를 얻고 싶을때는 getcwd(..
-
[Python] 리스트에서 랜덤으로 추출하기Coding/Python 2019. 11. 7. 15:26
리스트에서 랜덤 추출하기 파이썬에서 리스트 내의 요소를 랜덤으로 추출하는 것에는 세가지 방법이 있습니다. 우선, 세 가지 다 random 모듈을 import 해주어야 합니다. # 공통 import random 리스트 내에서 1개만 랜덤으로 추출하기 리스트에서 요소를 빼내는 메소드는 choice, sample 등이 있습니다. 그 중, choice는 리스트에서 한 가지 요소를 랜덤으로 추출해옵니다. li = [1, 2, 3] choiceList = random.choice(li) 리스트에서 여러 가지를 랜덤으로 추출하기(중복 허용 X) random 모듈의 sample 메소드는 중복을 허용하지 않고, 리스트 내에서 정한 숫자만큼 랜덤으로 추출해 옵니다. li = [1, 2, 3] # 리스트에서 2개 랜덤 추출..
-
[Python] Selenium 백그라운드(Headless)로 돌리기Coding/Python 2019. 10. 16. 21:09
Selenium Headless Selenium 라이브러리는 webdriver를 통하여 직관적으로 가상 웹 브라우저로 돌려볼 수 있다는 장점이 있습니다. 하지만 가끔씩은 돌릴 때 마다 브라우저 창이 열리면서 입력되는 것이 귀찮고, 괜히 프로그램이 무거워질 우려가 있습니다. 이번 포스팅에서는 브라우저를 열지 않고, 백그라운드에서 Selenium을 돌리는 법을 소개합니다. from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument('headless') options.add_argument('window-size=1920x1080') options.add_argument("disabl..
-
[Python] 문자열 아스키코드로 변환하기Coding/Python 2019. 10. 15. 13:38
Python 아스키코드 변환 C언어 같은 경우, 문자열을 아스키코드로 바꾸어 출력하는 것은 매우 쉬웠습니다. char c = 'A' print("%d",c) 이렇게 문자열을 정수형으로 출력만 해줘도 아스키코드를 출력할 수 있었죠. 파이썬은 자료형을 따로 구분지어 선언할 수 없으나, 간단한 메소드로 아스키코드로 변환이 가능합니다. c = 'A' print(ord(c)) 이렇게 간단하게 아스키코드로 변환이 가능합니다. (++이 코드로 백준알고리즘의 11654번 문제 해결이 가능합니다)
-
[BeautifulSoup] github repository 이름 크롤링하기Coding/Python 2019. 10. 11. 17:36
BeautifulSoup BeautifulSoup로 Github 크롤링하여 repository 목록 나열하기 import requests from bs4 import BeautifulSoup githubId = input('아이디를 입력하세요 => ') url = 'https://github.com/{}?tab=repositories'.format(githubId) req = requests.get(url) soup = BeautifulSoup(req.text, 'html.parser') repositoriesList = soup.select('#user-repositories-list > ul')[0] for repository in repositoriesList: repoName = repositor..