Search - 여러개의 필드로 검색하기 사용하는 객체가 여러 개의 데이터 필드를 가지고 있는 경우, 여러 필드를 사용해서 검색할 수 있다. 또한, 키워드 뿐 아니라 각각의 필드가 가지고 있는 데이터를 불러와 선택해서 검색한다. Web Search View - 사용자 검색 화면 설정 데이터베이스에서 각 필드의 유니크한 데이터를 가져온다. 이렇게 수집된 데이터를 context 를 통해서 화면으로 보낸다 search form template ( 화면 구성) search 버튼을 클릭하면 검색데이터와 함께 search url 을 호출하게 된다. 각 필드는 가져온 데이터를 가지고 옵션을 만든다. Model {% for model in model_search %} {{model}} {% endfor %} Locat..
Django - 검색(Search) 기능 구현하기 사용자가 입력한 키워드를 받아서 원하는 객체를 보여주는 기능을 구현한다. 사용자 입력 정보 받기 입력한 키워드를 keyword 변수로 search view 에 전달한다. 기본적으로 form은 GET 방식으로 요청하기 때문에 url 에서 전달되는 내용 확인할 수있다. 요청 url 정보 확인 > Search view : 사용자 검색 키워드 사용하기 사용자가 입력한 키워드를 사용해서 원하는 객체를 검색한다. 요청 url 에 keyword 정보가 있는지 확인하고, 해당 키워드를 가지고 decription 필드를 검색해서 키워드가 포함된 객체만 cars 에 담겨진다. 관련 포스팅 보기 장고 - 페이지 설정 ( paginator 사용하기) Django - 검색(Se..
Paginator ( 페이지 설정 ) 화면에 보여지는 객체가 많은 경우, 페이지별로 구분해서 보여주는 기능을 제공한다. views 설정 기존 코드의 경우 모든 객체 정보를 템플릿 쪽으로 보냈다면, paginator 에서는 객체 정보뿐 아니라 현재 페이지 정보를 포함해서 context 를 만들어 전달한다. Template 설정 화면에 보여지는 > 를 설정해주어야 한다. paginator 에서 제공해주는 변수들을 이용해서 편하게 설정이 가능하다. .has_other_pages .has_previous / .previous_page_number .has_next / .next_page_number .paginator.page_range 페이지 번호 예시 > 관련 포스팅 보기 장고 - 페이지 설정 ( pagin..
urls.py 에서 홈페이지에 대한 설정 사용자 요청이 root 페이지인 경우 urls.py 에서 어떻게 설정하는지 확인해보자. 일반적인 사용자 요청url은 다음과 같이 사용된다. 만일 해당 요청 home page 인경우 도메인 정보만을 해당 요청이 호출되게 할 수 있다. 다시 말해 요청을 127.0.0.1:8000 으로 요청을 해서 test.html 을 호출할 수 있다. 이제 해당 페이지에 대한 요청은 http://127.0.0.1:8000/ 로 할수 있다. 끝.
django - URL 설정하기 django 에서 URL 이란, 사용자의 요청 정보라고 생각할수 있다. 서버에 사용자의 요청이 들어오면 url 에 따라 view 가 원하는 로직을 구현해주는 것이다. 사용자 요청( url ) -> 컨트롤러 ( view ) -> 요청에 대한 응답 ( template ) 그럼 이제 실제 서버에서 어떻게 동작되는지 살펴보자. 1. 사용자 요청 사용자는 http://127.0.0.1:8000/test 라는 url 을 요청한다. 2. 컨트롤러 ( urls.py ) 서버는 사용자의 요청을 바탕으로 url 라우팅에 매핑되는 정보가 프로젝트/urls.py 있는지 확인한다. 만일 사용자 요청이 urlpatterns 중에 하나와 일치하면 두번째 항목의 blog.views.test 를 호출하..
django - 새로운 장고앱 만들기 장고 프로젝트에서는 각각의 모듈을 app 이라는 모듈로 관리한다. 예를 들어보면 shopping, cart, blog, accounts 등등의 모듈을 별로의 앱으로 관리할 수 있다. 그럼 장고에서 어떻게 app을 생성하는지 살펴보자. > django-admin startapp 실제 blog app 을 생성해보자. 새로운 app을 생성하면 app 이름과 같은 폴더가 생성된다. 해당 폴더에 들어가 보면 blog app 을 관리하기 위한 models.py, views.py 등등의 파일을 볼수 있다. django app을 생성하고 project 에서 이용하기 위해서는 project setting.py 에 등록해주어야 한다. settings.py 에서 INSTALLED_APP..
django 프로젝트 시작 - 가상환경 및 프로젝트 폴더 설정하기 장고 프로젝트를 시작하기 위해서 프로젝트 별로 python 및 라이브러리 관리를 위해서 가상환경을 만들어주는게 편리하다. 다행이 python 에서 이런 가상환경을 만들어주기때문 쉽게 관리가 가능하다. - 프로젝트를 위한 가상환경 설정 > python -m venv (가상환경을 위한 이름) 이렇게 하면 새로운 프로젝트를 위한 가상환경이 설정된다. 새로운 virtual environment 를 시작하기 위해서 Script/activate.bat 를 실행한다. activate.bat 를 실행하면, 다음과 같이 프롬프트 앞에 가상환경면이 표시되면서 독립된 파이썬 환경이 설정된다. 설치된 라이브러리들을 확인해 보면 아무것도 없는 것을 볼수 있다. ..
리스트에 있는 모든 string 을 int 로 변경하기 Python 3. map() 에서는 map 객체로 반환하기 때문에 마지막에 한번더 list 로 type 변경해줄 필요가 있다. Python 2. map 에 원하는 type 과 함께 넣고 변경하면 된다. 자료출처 : https://stackoverflow.com/questions/7422453/python-change-type-of-whole-list Python change type of whole list? I would like to do something like this def foo(x,dtype=long): return magic_function_changing_listtype_to_dtype(x) i.e. a list full of st..
하나의 값을 선택한 경우 radio 버튼을 이용하면 되는데, 여러개의 값을 선택해야 하는 경우 checkbox 로 선택해서 가져올수 있다. 그런데 이 경우 radio 와 동일하게 값을 처리하면 마지막에 선택한 값만을 가져오게 된다. 구글 검색결과 이 경우 getlist() 함수를 사용해서 가져올수 있다. html 의 form 은 다음과 같이 작성해준다. 그리고 request.POST 데이터를 읽을때, 로그 확인결과 끝..
objects.get() - 검색결과에 해당하는 하나의 객체만을 반환한다. 그래서 get()의 경우 unique 한 값을 가지고 검색하는 것이 좋다. 만일 결과로 여러개의 객체가 조회되면 MultipleObjectsReturned 에러가 발생한다. - Returns the object matching the given lookup parameters, which should be in the format described in Field lookups. objects.filter() - 검색결과에 해당하는 여러개의 객체를 포함하는 QuerySet을 반환한다. filter의 경우, 키워드 검색이라 특정 조건을 만족하는 객체를 검색할때 이용할수 있다. - Returns a new QuerySet contai..
- Total
- Today
- Yesterday
- 메시지 전송
- webhook
- cmd창
- HOME/END
- 파이썬
- channel oauth
- python message
- END key
- df 명령어
- Karabiner-Elements
- django
- 프로젝트 생성
- vscode
- angular
- win10
- HOME key
- venv
- python slack
- 미밴드
- 디스크 사용량
- slack api
- win7
- Python
- http 요청
- du 명령어
- 미밴드4
- 장고
- 팀 소통
- amaztools
- cmd실행
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |