본문 바로가기
728x90
django 내장 템플릿 필터 * add : 변수에 값을 추가함  . {{"2"|add:"3"}} -> 5  . {{"te"|add:"st"}} -> test * addslashes : 따옴표 앞에 슬래시를 추가  . {{ value|addslashes }} * capfirst : 첫번째 문자를 대문자로 바꾼다  . {{ "test"|capfirst }} * center : 주어진 폭의 필드에서 중앙정렬  . {{ value|center:"15" }} * cut : 인수로 주어진 값을 모두 제거  . {{ "test"|cut:"e" }} -> e를 제거해서 tst 출력 * date : 지정된 형식에 따라 날짜 형식을 지정  . {{ value|date:"D d M Y" }} * default : 값이 false 이면 기본값으로 사용 .. 2024. 7. 22.
파일저장하기 - 파이썬 filepath = "test.txt" #파일 경로를 지정하여 파일열기with open(filepath, "w") as file: file.write("test input\n")​#파일 내용 추가하기with open(filepath, "a") as file: file.write("test input\n")​#인코딩 오류 시 인코딩해서 저장하기with open(filepath, "a", encoding='utf-8') as file: file.write("test input\n") 2024. 7. 18.
태그 삭제하기 - 파이썬 temp 문자열 안에있는 태그를 삭제하는 소스​tagsFormat = re.compile("")temp = re.sub(tagsFormat, "", temp) 2024. 7. 18.
selenium 사용하기 - 파이썬 from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsimport subprocessfrom webdriver_manager.chrome import ChromeDriverManagerfrom selenium.webdriver.chrome.service import Servicefrom selenium.webdriver.common.by import By​subprocess.Popen(r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\chromeCookie"')​o.. 2024. 7. 18.
cloudflare 우회해서 크롤링 하기 - selenium, 파이썬 이전 글에서 zenrows 를 이용해 cloudflare 를 우회해서 크롤링하는 소스를 올렸는데​테스트를 하다보니 잘되는데 프리 이용횟수를 초과하니 막혀버려서 다른 방법을 찾게 되었다. ​아래 방법은 selenium 을 이용하는 방법으로 물론 무료이다. ​원래 selenium 을 이용할 경우 cloudflare가 bot 으로 인식해서 크롤링이 막히는데​해당 방법은 bot 으로 인식하지 않도록 처리했다. ​몇일 테스트를 해봤는데 문제없이 잘 돌아간다. ​from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsimport subprocessfrom webdriver_manager.chrome import Chrome.. 2024. 7. 18.
한번에 여러개 문자열 치환기 - 파이썬 한번에 하나씩 치환하는 것이 아닌 지정된 모든 문자열을 한번에​치환해 주는 함수이다. ​replacements 에 치환을 원하는 문자들을 정리해주고 함수를 호출하면​한번에 치환해서 반환해준다.​ import re def mreplace(text, replacements):    def rmatch(match): return replacements[match.group(0).lower()]        regex = re.compile("|".join(map(re.escape, replacements.keys())), re.IGNORECASE)    return regex.sub(rmatch, text) #치환 문자열 replacements = {    "[메일]": "[Mail]",    "[속보]": .. 2024. 7. 18.
UnicodeEncodeError: 'cp949' codec can't encode character '\u2013' 파일에 텍스트 값을 입력하는데 해당 오류가 발생했습니다. ​오류 원인은 한국어 환경에서의 인코딩은 'cp949'로 지정이 된 경우가 많은데,​유니코드('utf-8') 등 다른 인코딩 방법으로 인코딩된 파일을 다루는 경우,​인코딩 버전 불일치로 인하여 해당 에러가 발생할 수 있습니다.​해결방법으로는​encoding 방법을 명시적으로 지정해주시면 해결이됩니다. ​ . with open(fileName, "a", encoding='utf-8') as file: 2024. 7. 16.
cloudflare 우회해서 크롤링 하기 - zenrows 보안을 위해 cloudflare 를 사용하는 페이지들이 있다.  이런 페이지를 크롤링하려면 여러가지 난관들이 있는데 구글링을 열심히 한 결과  한 가지 방법을 찾을 수 있었다.   1. https://www.zenrows.com/ 사이트에 가입 후 빌더에서 api key 를 생성한다  2. 아래와 같이 소스에 api key를 사용해서 크롤링한다 import requests from bs4 import BeautifulSoup as bs url = 'SITE_URL' apikey = 'API_KEY' params = {     'url': url,     'apikey': apikey,     'js_render': 'true',     'premium_proxy': 'true', } response = .. 2024. 7. 15.
소스 수정 후 적용방법 - django "장고 + 아파치로 웹서비스 시 소스 변경 후 적용이 안된다면?"​이 문제로 구글링을 계속 해봤지만 누구는 세팅 정보가 아니면 바로 적용된다고 하고​누구는 아파치를 재시작 해야한다고 설명했다. ​직접 테스트를 해본 결과로는 바로 적용이 되었다가 안되었다가 하는데 ​한번 안되면 하루가 지나도 안되고 아파치를 재시작해야만 적용이 되었다. ​느낌 상으로는 수정을 하다가 오류가 발생하면 적용이 막히는 느낌이다. (이것도 모르겠다 ㅜㅜ)​정확한 정답은 아직 모르겠으나 어쨌든, 뭔가를 해줘야 하기는 해야할 것 같은데​서비스를 하고 있는데 소스 변경할 때마다 아파치를 재시작하는건 위험한것 같다. ​그래서, 찾은 다른 방법은 아래와 같다.​ "장고 애플리케이션을 다시 로드한다!!"​1. mod_wsgi 를 사용할 경우.. 2024. 7. 11.
깃허브 사용법 - github 로컬에 git 을 설치했다면 이제 깃허브에 가입해서 원격저장을 해보자 * https://github.com 회원가입 * 가입 완료 후 "create repository" 로 저장소를 생성  . 이름에 본인 프로젝트명을 넣는다  . 생성이 완료되면 저장소 URL 이 나오는데 이를 GIT 과 연동한다 * git 과 연결하기  . c:\projects\mysite>git remote add origin https://github.com/myid/mysite.git . git push -u origin main 후 로그인까지 진행  . 이후 비밀번호를 묻지 않도록 설정하려면 "git config credential.helper store" 해주면 된다.  * 원격 저장소에 저장하는 순서  . 소스변경  . gi.. 2024. 7. 11.
Git 설치 및 사용방법 윈도우에서 git 을 설치해서 사용하는 방법에 대해서 다뤄보자 일단 다운로드하여 설치 - https://git-scm.com설치가 완료되었다면 git 으로 관리할 프로젝트 폴더로 이동하여 아래와 같이 진행한다.   . c:\projects\mysite>git init    Initialized empty Git repository in C:/projects/mysite/.git/ 그러면 .git 디렉토리가 생성된다. 이후 깃의 관리는 이 디렉토리에서 이뤄진다.  * git status   . c:\projects\mysite 폴더에서 'git satus'를 실행하면 현재 저장소의 상태를 출력해준다  * gitignore  . git 으로 관리자하지 않을 (.idea, jquery.min.js 등) 파일을.. 2024. 7. 10.
views.py 여러 개 파일로 분리하기 2 - django views.py를 분리하는 2번째 방법은 urls.py에 모두 정의해주는 방법이다. ​일단 첫 번째 방법과 동일하게 views.py를 분리 저장 후 myapp/urls.py 에 아래와 같이 정의해준다​  from .views import a_views, b_views, c_views​  path('', a_views.index, name='index'),  path('/', b_views.detail, name='detail'),  path('/', c_views.detail, name='detail'),​위 와 같이 어떤 뷰를 참조하는지 명시적으로 표시하기 때문에 유지보수 시 유리하다. ​물론, vscode 를 사용할 경우 alt+f12를 이용하면 바로 추적이 가능하기는 하지만....​config/ur.. 2024. 7. 10.
반응형