다음으로는 django에 데이터를 저장해보도록 하겠습니다.
우선 터미널로 이동하여 이름이 burgers인 새로운 application을 생성합니다.
다음으로 config 내 settings.py를 열어 INSTALLED_APPS에 아래와 같이 작성합니다.
다음으로 burgers 폴더의 models.py 파일을 열어 햄버거에 대한 정보를 담고 있는 함수를 정의합니다.
클래스를 생성하여 메뉴의 이름, 가격, 칼로리를 저장할 수 있습니다.
다음으로는, 실제 데이테베이스 안 테이블을 생성하기 위해 migration을 생성합니다.
우선, 터미널로 이동하여 아래와 같이 실행합니다.
적색으로 표시된 줄을 확인하면 python manage.py migrate을 적용해야한다고 경고 표시됩니다.
따라서, runserver를 종료한 후, python manage.py migrate를 작성합니다.
정상적으로 실행이 된 경우 아래와 같이 표시됩니다.
다음으로는 DB Browser for SQLite를 설치합니다.
다운로드 링크: https://sqlitebrowser.org/dl/
Downloads - DB Browser for SQLite
(Please consider sponsoring us on Patreon 😄) Windows Our latest release (3.12.2) for Windows: Windows PortableApp Note - If for any reason the standard Windows release does not work (e.g. gives an error), try a nightly build (below). Nightly builds ofte
sqlitebrowser.org
pyburger의 데이터베이스는 아래와 같이 pyburger의 폴더 안에 있습니다.
*본인은 현재 프로젝트를 2번째 진행하고 있기 때문에 폴더명이 pyburger1입니다.
다음, Burger 클래스의 마이그레이션 파일을 생성하여 데이터베이스에 적용해보겠습니다.
터미널로 이동하여 아래와 같이 작성합니다.


DB Browser for SQLite를 실행합니다.
pyburger 데이터 베이스를 연 후, 데이터 보기를 클릭하면, 아래와 같이 burgers_burger가 생성된 것을 확인할 수 있습니다.



다음으로, django admin을 사용하겠습니다.
burgers 폴더 내 admin.py을 열어 아래와 같이 작성합니다.
브라우저에서 http://127.0.0.1:8000/admin/ 입력한 후 admin 페이지에 접속합니다.
다음으로 아래와 같이 admin의 사용자 이름과 비밀번호를 설정합니다.
Username: 원하는 사용자 이름
Email address: 이메일 주소 (공백일 경우, 없음 처리)
Password: 비밀번호
Password (again): 비밀번호 재확인
This password is too short. It must contain at least 8 characters.
This password is too common.
This password is entirely numeric.
위와 같은 메시지가 나온 이유는 편의상 비밀번호를 임의로 1111로 저장했는데 이럴 경우 위와 같은 경고가 뜨기도 합니다. 비밀번호는 원하는 조합으로 작성합니다.
브라우저로 돌아와 생성한 사용자 이름과 비밀번호를 입력하여 로그인하며 아래와 같은 화면이 뜹니다.
다음으로 Burgers에 데이터를 추가하기 위해 Burgers에 있는 Add 버튼을 클릭합니다.
다음 원하는 데이터를 입력 후 저장합니다.
다음 burgers 폴더 내 models.py로 이동하여 admin 페이지 내 Burger 정보를 더 자세하게 나타나게 하기 위해 아래와 같이 작성합니다.
브라우저에서 http://127.0.0.1:8000/admin 페이지에 접속하면, 아래와 같이 burger의 정보가 더 자세하게 확인됩니다.
다른 데이터도 추가합니다.
다음으로 전체 햄버거 목록을 가져옵니다.
터미널로 이동하여 아래와 같이 실행합니다.
다음은 특정 조건에 해당하는 정보(더블와퍼)를 가져오겠습니다.
다음은 특정 조건 '와퍼'에 해당하는 정보를 가져오겠습니다.
다음으로 view에서 데이터를 가져오도록 하겠습니다.
config 폴더 내 views.py 파일을 아래와 같이 변경합니다.
브라우저에서 http://127.0.0.1:8000/burgers를 입력하면 터미널이 아래와 같은 값을 출력합니다.
다음으로는 가져온 데이터를 template으로 전달하겠습니다.
우선, config 폴더 내 view.py로 이동하여 아래와 같이 변경합니다.
그 다음 전달된 데이터를 출력하겠습니다.
templates 폴더 내 burgers_list.html로 이동하여 아래와 같이 작성합니다.
브라우저를 새로고침하면 아래와 같이 출력됩니다.
다음은 for 태그를 작성하여 순회할 수 있는 객체로 변수를 출력하겠습니다.
templates 폴더 내 burger_list.html 파일을 아래와 같이 변경합니다.
브라우저를 새로고침하면, 아래와 같이 다르게 출력이 됩니다.
다음은 GET방식을 통한 버거 검색을 가능하게 하기 위한 view를 작성하겠습니다.
config 폴더 내 view.py 파일을 아래와 같이 변경합니다.
다음으로, burger_search.html을 가져오기 위해 templates 폴더 내 새로운 파일(burger_search.html)을 생성합니다.
생성한 후, 아래와 같이 코드를 작성합니다.
그 후 URLconf에 burger_search view를 연결하도록 하겠습니다.
config 폴더 내 urls.py 파일에서 아래와 같이 burger_search를 추가합니다.
브라우저로 돌아와 확인하면 아래와 같이 search 경로 확인이 가능합니다.
그 다음 views.py 파일에 아래와 같이 추가합니다.
브라우저에 http://127.0.0.1:8000/search/?keyword=더블를 입력하면 터미널에 아래와 같이 확인됩니다.
다음으로, 더블 이외로 전달받은 키워드로 메뉴를 검색할 수 있도록 views.py에 아래와 같이 추가합니다.
다시 브라우저를 새로고침 할 경우, 터미널에 아래와 같이 출력됩니다.
다음으로 아래와 같은 코드를 작성하면 ORM을 사용하여 검색어를 가지고 있는 버거 메뉴 목록을 가져올 수 있습니다.
다음은 templates 폴더 내 burger_search.html 파일로 이동하여 아래와 같이 추가합니다.
브라우저를 새로고침할 경우 아래와 같이 변경되는 것을 확인할 수 있습니다.
다음으로는 검색결과를 보기 좋게 templates 폴더 내 burger_search.html 파일을 아래와 같이 코드를 작성한 후 브라우저를 새로고침하면 아래와 같이 가독성이 조금 나아진 출력을 확인할 수 있습니다.
다음으로는 아무런 keyword가 주어지지 않을 때 또한 정상적으로 페이지 확인이 가능할 수 있도록 views.py 파일을 아래와 같이 코드를 수정합니다.
다음 글에 이어집니다.
'데이터 분석&엔지니어링 캠프' 카테고리의 다른 글
Django - Gmail 발송 (0) | 2024.01.26 |
---|---|
Django - pyburger 프로젝트 (4) (0) | 2024.01.25 |
Django - pyburger 프로젝트 (2) (0) | 2024.01.25 |
Django - pyburger 프로젝트 (1) (0) | 2024.01.24 |
리눅스 명령어 모음 (0) | 2024.01.22 |