Dio , 데이터 보내기 (send)

tpids·2024년 9월 26일

Flutter

목록 보기
40/40

main.dart (EXdio)

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: ExLogin(),
    );
  }
}

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);
  }

  void sendData() async {
    Dio dio = Dio();
    String url = 'http://192.168.0.21:8082/data';

    // 데이터 담아서 보내는 법
    // get(url, queryParameters : {map 구조로 보내주기}
    Response res = await dio.get(url, queryParameters: {'test':'world'});
    print(res.statusCode);
    print(res.realUri);
    print(res.data);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(child: ElevatedButton(onPressed: (){
        sendData();
        // getData();
      }, child: Text("데이터 보내기"))),
    );
  }
}

vscode

app.py

from flask import Flask, request, Blueprint # 모듈 -> 파일연결
#1. from py 파일명 import 변수명
from db import member

app = Flask(__name__)

# db.py 연결 코드
#2. app.register_blueprint() 활용 url_prefix
app.register_blueprint(member, url_prefix = '/member')


@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)

db.py

from flask import Flask, request, Blueprint

# app.py 연결 코드
member = Blueprint("member", __name__, template_folder="templates")

# python - mysql 연동


@member.route("/")
def test():
    return "hello world"

profile
개발자

0개의 댓글