This worked for Python Barcode scanner integrated into Flutter.
Step 1: Import http package from this dependency and pub get( http: )
Step-2: In your flutter project create a new file, let’s say request.dart,
enter the following lines in that file
import 'package:http/http.dart';
Future getData(url) async {
Response response = await get(url);
return response.body;
}
Step-3: Now, your flutter project is ready to connect Python.
Go to PyCharm IDE, and create a new Flask Project.
Step-4: By default, you would have this code in your app.py file
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
The above written code will be automatically generated when you will make a new Flask project.
Do not attempt to delete any of this pre-written code.
You can rename the hello_world() function and implement whatever logic you want and return a string, number or an array.
When you would run your project, it will run on localhost.
Normally, it runs on http://127.0.0.1:5000/ (local host, port 5000)
Before configuring flutter, you can also type this address on your browser to see if your project is up and running!
http://127.0.0.1:5000/
Now for getting the output in flutter, instead of simply returning string, we need to return a json.
For that, from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/')
def hello_world():
json_file = {}
json_file['query'] = 'hello_world'
return jsonify(json_file)
if __name__ == '__main__':
app.run()
Now in your main flutter file, where you want to access, add this code in the function you want to get your output by python script.
var data = await getData('http://10.0.2.2:5000/);
var decodedData = jsonDecode(data);
print(decodedData['query']);
That's it.