Dio , 데이터 가져오기 (get)

tpids·2024년 9월 26일

Flutter

목록 보기
39/40
post-thumbnail

pub.dev 사이트에서 dio 검색

pubspec.yaml

...
dev_dependencies:
	dio: ^5.7.0
...

main.dart ()

import 'package:flutter/material.dart';
import 'package:dio/dio.dart';
import 'package:flutter_db/screen/login_page.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: ExDio(),
    );
  }
}

class ExDio extends StatelessWidget {
  const ExDio({super.key});

  void getData() async {
    // dio 라이브러리 사용하여 데이터 가지고오기

    // 1. Dio 객체 생성
    Dio dio = Dio();
    // 2. url 작성하기
    // String url = "http://localhost:8082/test";
    //  ㄴ 안되는 이유 : 스마트폰도 하나의 작은 컴퓨터, 스마트폰 내 localhost가 별도로 존재

    // ipconfig 통해 ip주소 알아 낸 후 vscode 서버 주소 변경
    String url = "http://192.168.0.21:8082/test";
    // dio 내에도 post, get
    // dio.~~~
    Response res = await dio.get(url);

    print(res.statusCode);
    print(res.data);
    // 출력창에 접속한 url을 출력
    print(res.realUri);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(child: ElevatedButton(onPressed: (){
        getData();
      }, child: Text("데이터 가져오기"))),
    );
  }
}

vscode

app.py

from flask import Flask, request

app = Flask(__name__)


@app.route('/')
def hello():
    return 'hello'

# 새로운 페이지
@app.route('/test')
# 함수로 작성
def test(): # 함수명은 의미없음

    # return에 페이지에 보여질 모습 출력
    # String, 숫자 
    return "test page"

@app.route('/data')
def data():
    # 데이터 받는 법
    # request.args.get(키값)
    test = request.args.get('test')

    return test

if __name__ == '__main__':
    app.debug = True
    app.run('192.168.0.21',port=8082)

profile
개발자

0개의 댓글