개발 환경

상품 리스트 화면

전체 상품 리스트

Untitled

상품 상세 설명

Untitled

전체 상품 리스트에서 원하는 상품 클릭시, 상품 상세 설명 화면으로 이동한다.

상품 상세 설명 화면의 기능들을 위주로 설명할 것이다.

주요 기능

데이터베이스와 연결

상품을 등록할 때 상품에 관한 정보를 입력하면 데이터 베이스에 옆에와 같이 등록이 된다.

→ 우리는 이 데이터베이스에서 정보를 가져와 서버에 띄우고 싶다!!

Untitled

Untitled

<database.py>

import pyrebase
import json

class DBhandler:
    def __init__(self):
        with open('./authentication/firebase_auth.json') as f:
            config = json.load(f)

            firebase = pyrebase.initialize_app(config)
            self.db = firebase.database()

    def insert_item(self, name, data, img_path):
        item_info = {
            "seller": data['seller'],
            "addr": data['addr'],
            "email": data['email'],
            "category": data['category'],
            "card": data['card'],
            "status": data['status'],
            "phone": data['phone'],
            "img_path": img_path
        }
        self.db.child("item").child(name).set(item_info)
        return True

		def get_item_byname(self, name):
		        items = self.db.child("item").get()
		        target_value=""
		        for res in items.each():
		            key_value = res.key()
		            if key_value == name:
		                target_value=res.val()
		        return target_value

상품 등록 시, insert_item 함수를 통해 item_info의 정보가 입력된다.

self.db.child("item").child(name).set(item_info)

→ 이 부분 코드를 통해서 데이터베이스의 루트 아래 “item”이라는 이름의 자식 노드로 이동 or 생성

→ 이는 파일 시스템에서 “item”폴더로 이동하는 것과 비슷하다.

get_item_byname 함수를 통해서 상품의 이름을 통해 데이터베이스로부터 정보를 가져온다.

<application.py>