app.py
from flask import Flask, request app = Flask(__name__) @app.route('/') def test(): # return타입에 html 띄울 수 있는 함수 혹은 문자열 혹은 json이 반환 return 'hello' @app.route('/send') def send(): # 데이터 받는법 # request.args.get('보내준 곳에서의 key값') test = request.args.get('test') print(test) return "hello234" if __name__ == '__main__': app.debug = True #저장 하면 즉시 반영 app.run('192.168.219.179', port = 8086)
- ex_flask
import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; // tf 컨트롤러 TextEditingController testCon = TextEditingController(); final dio = Dio(); class ExFlask extends StatelessWidget { const ExFlask({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( children: [ TextField( controller: testCon, ), ElevatedButton(onPressed: () async{ String test = testCon.text; // 1. url 작성 String url = 'http://192.168.219.179:8086/send'; // 핸드폰도 작은 컴퓨터 입니다. // 즉 핸드폰도 서버가 될 수 있습니다.! // 코드에 작성한 localhost는 flutter 쪽에선 핸드폰 // vscode쪽(python)에서는 컴퓨터 // cmd 창 ipconfig 통해서 ip 주소 알아낸 다음 코드 수정 // 2. 통신 라이브러리 - dio 라이브러리 // dio 객체 생성했는지 확인(없으면 객체 생성코드 작성) // 3. 통신(get/post) // get(url,(queryParameters{map구조로 작성})) Response res = await dio.get( url, queryParameters:{'test' : test} ); print(res); }, child: Text("보내기"), ), ], ), ), ); } }
통신 라이브러리 dio사용
- pubspec.yaml
dependencies: dio: ^5.8.0+1