How to integrate Flutter app with Python code

10,481

Solution 1

I suggest you to use or convert your Python code as a Back-end code and Flutter code as Front End code. After that, your Flutter application can call the API via HTTP Requests and get data that it wants.

Further reading about my suggestion:

Solution 2

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.

Share:
10,481
littleironical
Author by

littleironical

Here to help other developers in solving their problems and queries so that they won't face the same difficulties that I've faced in my developing phase. I hope my answers would help you.

Updated on June 28, 2022

Comments

  • littleironical
    littleironical almost 2 years

    I have written a python code that can mark attendance using face recognition. It basically writes the (Name, Registration no. and entry time) in .csv file of those whose faces match with the data(images of my friends and mine) that i've provided.

    And now I want to make an app(using flutter) that uses this python code.

    What should be my approach to this?

    • funky-future
      funky-future over 2 years
      I think such application is a creep that Python was never intended for.