Pythonic Code란? "When people talk about pythonic code, they mean that the code uses Python idioms well, that it’s natural or displays fluency in the language." - Pythonic Code란 Python의 문법으로 코드를 작성하는 것이다. 여기서 Python의 문법 사용이란, 단순히 Python이 가진 기능을 사용한다는 뜻이 아니라 다른 언어가 가지고 있지 않은 Python만의 특징과 문법을 사용하는 것을 의미한다. 예시 1 1 2 3 4 5 6 7 8 9 10 11 x=[1, 2, 3, 4, 5, 6] result = [] for idx in range(len(x)); resul..
Excel(.xlsx) 파일 MySQL에 import하기 .xlsx를 .csv로 변환하기 - excel에서 다른 이름으로 저장 => 파일 형식 csv - 아래에 있는 단순 CSV로 처리하면 MySQL workbench에서 utf-8이 아니라 오류가 발생한다. 조건에 CSV utf-8이 존재하지만 이를 통해 처리하면 utf-8 오류가 어차피 발생한다. 아래의 csv 파일 변환으로 하여 메모장으로 해당 파일을 열어 다른 이름으로 저장할 때, 인코딩을 utf-8로 저장해주면 오류가 발생하지 않는다. MySQL workbench - MySQL workbench의 원하는 테이블을 지정하여 마우스 우클릭을 하면 위의 화면이 나오고 Table Data Import를 진행한다
Django MySQL 연동하기 MySQL 연결하기 - MySQL shell은 시작이 JS이므로 \sql 명령어를 통해 SQL로 전환해준다 - root@localhost로 연결해준다. MySQL database 생성 및 연결 - database youknowwhat 생성 - 바로 show tables를 하면 오류가 발생한다. use 명령어를 통해 먼저 사용할 db를 지정해준 후 사용 가능하다. Django에서 MySQL 설정 - settings와 별개의 db_settings.py 생성 - sql 연결관련 코드는 비밀번호를 포함하고 있으므로 따로 생성하여 settings에서는 import하여 사용한다 - 디렉토리가 중요한데 settings와 같은 위치에 넣었다가 경로 에러가 발생했다 - 프로젝트 최상위 폴..
Django vs Ruby on Rails 공통점 routes.rb - Django의 urls.py와 비슷한 역할 - Controller(Django에서 Views)의 메소드를 실행시켜준다. ex) get '/gogo', to: 'lotto#index' => get방식의 gogo가 url에 들어오면 lotto라는 이름의 controller에 가서 index라는 메소드를 실행시킨다. 성능 - Ruby와 Python의 성능 수준은 거의 동일하다. 일반적인 CRUD 앱에서는 차이가 눈에 띄지 않는다. 성능이 우선 순위 목록에서 높고 수천 명의 동시 사용자에게 서비스를 제공해야하는 경우 올바른 선택이 아니다. Architecture - 두 언어의 아키텍처 는 MVC 모델을 기반으로하며 잘 구조화되어 있습니다. ..
Django에서 AJAX 사용하기 AJAX를 사용하지 않는 방식과 AJAX 사용과의 차이점 - 왼쪽 방식은 AJAX를 사용하지않는 것으로 Request가 들어오면 url로 href 되어 views.py에서 models.py의모델 내용을 변경하고, 변경사항을 반영하는 템플릿으로 다시 redirect해준다. 이 과정은 새로고침으로 볼 수 있다. - 오른쪽 방식은 AJAX를 사용한 것으로 Button Onclick을 JS로 감지하여 AJAX를 통해 서버와 통신한다. 즉, 위에서는 url을 바로 Django에서 href하는 것과 다르게 AJAX를 통해 통신하는 과정이 추가된다. AJAX 예시 코드 1 2 3 4 5 6 7 8 9 10 $.ajax({ url: '127.0.0.1:8000/hello', type:..
URL Dispatcher - HTTP request가 들어올 때마다, 등록된 urlpatterns 상의 매핑 리스트를 처음부터 순차적으로 훝으며 URL 매칭을 한다 - 매칭되는 URL Rule이 다수 존재해도 처음 매칭되는 Rule 만을 사용한다. - 매칭되는 URL Rule이 없을 경우 404(Page Not Found) Error 응답을 발생한다. Django.conf.urls.url() (Django 1.x 버전) - Django 1.x 버전의 url() 메소드가 regex 사용을 위한 re_path()가 되고, path가 추가되었다. Django.urls.path() - 기본 지원되는 Path converters를 통해 정규표현식 기입이 간소화되었다. urlpatterns 예시 - Django ..
장고 템플릿에서 요소 슬라이싱하기 - Django의 models나 views에서 객체 자체를 슬라이싱하는 것이 아니라 이미 존재하는 객체를 슬라이싱해서 django template을 표현할 때에는 아래와 같은 표현으로 사용한다. {{ element|slice:"start:end+1" }} 주의할 점 - 파이썬과 다르게 template에서는 띄어쓰기가 문제가 될 수 있다. element | slice : "" 처럼 표현 할 경우 에러가 발생했다. - slicing 뿐만 아니라 element|문법 표현을 통해 다양한 기능을 사용할 수 있다. model 자체에서 slicing하기 - model에서 model 객체의 필드 값을 슬라이싱해서 새로운 필드로 정의해주는 것이 아니라 함수를 정의해 슬라이싱 값을 ret..
WSGI (web server gateway interface) - 웹서버(nginx, apache)와 django framework를 연결하는 역할을 한다. - 웹서버 vs 웹 어플리케이션 서버 참고 : logical-code.tistory.com/30 웹 서버와 웹 어플리케이션 서버의 차이 웹 서버(WS)와 웹 어플리케이션 서버(WAS)의 차이 웹 서버(Web Server) 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 정적으로 처리해 반환하는 프로그�� logical-code.tistory.com URL RESOLUTION - urls.py에서 request된 url을 역할에 맞게 잘게 나누어주는데 이 작업을 parsing 이라고 한다.
- Total
- Today
- Yesterday
- 랜선자르기#이분탐색#BOJ#Python
- Triangle#Sorting#Codility#Python
- 날짜 계산#BOJ#완전탐색#Python
- 터틀비치#리콘#xbox#controller
- 종이자르기#분할정복#BOJ#Python
- PassingCars#Codility#Python
- 미로 탐색#백준알고리즘#Python
- 쿼드트리#BOJ#분할정복#Python
- 리모컨#완전탐색#BOJ#Python
- 나무자르기#BOJ#이분탐색#Python
- 병든 나이트#BOJ#탐욕법#Python
- 공유기 설치#BOJ#이분탐색#Python
- N으로 표현#DP#Programmers#Python
- 텀 프로젝트#백준알고리즘#Python
- 반복수열#백준알고리즘#Python
- 순열사이클#BOJ#Python
- API#lazy#
- 암호코드#dp#BOJ#Python
- 토마토#백준알고리즘#Python
- 배열합치기#분할정복#BOJ#Python
- 백준 알고리즘#BackTracking
- NumberofDiscIntersections#Codility#Sort#Python
- Swift#Tuples#Range
- 섬의개수#백준알고리즘#Python
- Brackets#Stacks and Queues#Codility#Python
- django
- filter#isalnum#lower
- django#slicing
- Distinct#Codility#Python
- 파이썬알고리즘인터뷰#4장
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |