2. flet homepage https://flet.dev

최종 업데이트 : 2025-01-11

main.py

            
                
import flet as ft
import requests

def main(page: ft.Page):
    id = ft.TextField()
    password = ft.TextField()
    password_check = ft.TextField()

    def signup_request(e):
        url = 'http://127.0.0.1:8000/api/signup'
        data = {
            'id': id.value,
            'password': password.value
        }

        response = requests.post(url, json=data)
        response_data = response.json()
        page.snack_bar = ft.SnackBar(ft.Text(f"{response_data['status_code']} {response_data['content']}"))
        page.snack_bar.open = True
        page.update()

    page.add(
        ft.Text("아이디"),
        id,    
        ft.Text("패스워드"),
        password,
        ft.Text("패스워드확인"),
        password_check,
        ft.TextButton(text="회원가입", on_click=signup_request),
    )

ft.app(main)
  
            
        

작업순서

        
import flet as ft
        
    

import을 이용하여 사용할 패키지를 선언합니다.

flet의 경우 별칭(alias)을 사용하기 위해 `as ft`로 이하 ft를 이용합니다

        
ft.app(main)
        
    

flet의 app함수를 이용해 main을 실행시킵니다.

        
def main(page: ft.Page):
        
    

함수를 정의하고 함수안에서 사용할 page변수를 flet의 Page로 정의합니다.

        
id = ft.TextField()
password = ft.TextField()
password_check = ft.TextField()
        
    

사용할 TextField 컨트롤을 변수에 할당합니다.

        
page.add(
    id,
    password,
    password_check,
)
        
    

페이지에 추가하여 실행해봅니다.

        
page.add(
            ft.Text("아이디"),
            id,    
            ft.Text("패스워드"),
            password,
            ft.Text("패스워드확인"),
            password_check,
            ft.TextButton(text="회원가입", on_click=signup_request),
        )
        
    

구분을 위해 필요한 텍스트를 직접 넣어봅니다.

그리고 텍스트버튼도 추가하되 표시될 텍스트와 클릭했을시 함수명을 설장합니다

        
import requests
        
    

API통신을 위해 사용할 requests를 선언합니다

        
            
def signup_request(e):
    url = 'http://127.0.0.1:8000/api/signup'
    data = {
        'id: id.value,
        'password': password.value
    }

    response = requests.post(url, json=data)
    response_data = response.json()
    page.snack_bar = ft.SnackBar(ft.Text(f"{response_data['status_code']} {response_data['content']}"))
    page.snack_bar.open = True
    page.update()
  
        
    

API통신을 위해 url주소와 post로 통신하기위해 json 데이터를 만들어줍니다

post로 선언한 url과 json으로 데이터를 보냅니다

결과를 response에 받도록 지정합니다

받은 결과는 json으로 변환하고

json의 데이터를 snack_bar에 셋팅하여

보이도록 설정하고 해당 페이지를 갱신합니다.

이때 교육용 api 서버 하나가 켜져있어야합니다.

원하는걸 고민하고 설계하고 프로그램을 만들면서

본인에게 맞는 방식을 찾을 수 있도록

flutter, svelet, react도 있으니

알맞는 스킬을 습득하셨으면 좋겠습니다.

Related Pages

© 2024 Coding Stairs. All rights reserved.