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("데이터 보내기"))),
);
}
}
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"