在 Flask 服务器上构建 Android 应用

带有后端的安卓系统?为什么不是本地?

我将从最简单的地方开始..!知道为什么我们的 android 应用需要单独的后端吗?简单想想所有使用移动应用程序的用户从云数据库服务器接收数据并将数据发送到云数据库服务器的情况!

为什么选择 REST API?

REST API 通过 http 请求进行通信,以执行前端应用程序和数据库之间的通信!就像您在亚洲使用移动应用程序一样,数据库托管在美国的服务器中。您需要一个代理来建立您的移动应用程序和数据库之间的连接,不是吗?这是您实现自己的 REST API 的地方。它将使用您为执行 CRUD 而实现的功能与您的中央数据库进行通信。您的前端应用程序建立连接并发出 http 请求以从数据库中检索数据。您实现的 REST API 将处理这些请求并将数据作为 http 响应发送给您。

为什么是Flask??

我最初的用例是我正在开发一个基于机器学习的移动应用程序,我需要使用 python 和 python 兼容库进行预处理和预测。因此,拥有一个 python 后端是一项重要的要求,这就是我进入“Flask”的地方!在这种方法中,我们可以通过 REST API 调用将我们的数据从 Android 发送到 Flask 服务器,并在 Flask 服务器内进行与 python 相关的处理,并通过 REST API 调用将输出返回到我们的 android 应用程序。是的,即使从第一印象来看,它也很简单但很好!

这里我使用了okhttp,这是 Square 开发的用于发送和接收 http 请求的第三方库。

我将演示如何将您的 Android 前端应用程序连接到使用 Flask 实现的 Python 服务器!

以下是步骤!

1. 创建你的安卓应用

2.创建Flask服务器

3. 连接安卓应用和服务器

该演示包含一个简单的用户界面。

“Send Post Request”按钮向服务器发送一个“POST”请求,并在给定的文本字段中输入用户名。当它到达服务器时,我们实现了一个函数extract_name()来返回一个包含它接收到的名称的句子,作为响应返回给用户。因此,一旦您输入您的姓名并单击“发送发布请求”按钮,您收到的回复将显示在底部的文本视图中。

当点击“Send Get Request”按钮时,它将向服务器发出GET请求,相应的服务器函数“get_fact()”将返回响应文本。它将显示在底部的文本视图中。

那么让我们看看怎么做吧!

1. 创建你的安卓应用

  • 打开你的 Android Studio 并点击 File->New Project 创建一个新项目
  • 在此预览中选择“空活动”。(您可以选择首选视图!)

选择活动模板并单击下一步。

  • 为您的项目命名,然后单击完成,如下图所示。

现在正在创建 Android 应用程序。等待一段时间,直到您的 IDE 为您执行此操作!

如前所述,我正在创建一个带有文本框、按钮和文本视图的简单 UI。现在,只需将以下代码复制并粘贴到您的activity_main.xml文件中。最后,你会得到一个清晰的见解!

现在单击 IDE 中的运行按钮,您将在模拟器或模拟器中看到特定的用户界面:

2. 创建 Flask 服务器

在其他地方(不是在 android 项目目录中)创建一个名为 server.py 的新文件并在那里复制以下代码。

现在在上述文件所在的同一目录中打开 cmd,然后使用命令运行它

python server.py

现在您的服务器应该正在运行!

这就是您的 cmd 出现的方式!您将在标有红色箭头的地方获得自己的 URL。在接下来的部分中使用该 URL

3.连接Android App与服务器

在 AndroidManifest.xml 文件中添加以下行以获得 Internet 权限。

在清单文件中的“应用程序”标签中放入以下行

在 app/build.gradle 的 dependencies 对象部分添加以下依赖项

现在让我们的 UI 功能化!为此,将以下代码粘贴到 MainActivity.java 文件中。确保将 您在此处获得的 URL粘贴 为以下代码第 29 行的变量值

请确保启用到执行 Flask 服务器的设备和执行 android 应用程序的手机的 Internet 连接。

现在一切就绪!!!是的!完成!通过单击 Send Get Request 和 Send Post Request 按钮,您将向服务器发送请求并检索相应的响应。请仔细阅读代码库并阅读评论。这很简单!!!

在这里你可以看到演示。看,您的 Android 应用程序可以将数据发送到后端服务器并从中检索数据!

您可以在 GitHub 中找到源代码:  https ://github.com/RusJaI/Android-Flask

building-an-android-app-on-a-flask-server