使用python做手机app后台

2023-11-16

编辑器:HBuiderX、PyCharm

主要技术:5+App、python

HBuiderX 下载地址:http://www.dcloud.io/hbuilderx.html

PyCharm 下载地址:http://www.jetbrains.com/pycharm/?fromMenu

python 下载地址:https://www.python.org/


5+App是HBuiderX下面的一个支持跨平台App项目,全称:HTML5 Plus,是一种基于HTML、JS、CSS编写的运行于手机端的App,这种App可以通过扩展的JS API任意调用手机的原生能力,实现与原生App同样强大的功能和性能。

 

第一步进行后台接口编写

python只提供接口+业务处理

from flask import Flask, make_response  引入路由模块,提供外部访问的接口,make_response 处理返回结果

app.run(host="0.0.0.0", port="5000", debug=True)表示同一局域网任何ip都可以访问,访问端口为:5000,允许调试模式。

from flask import Flask, make_response
from flask_cors import cross_origin

app = Flask(__name__)
uName = "admin"
uPwd = "admin"
status = ""


# 登陆函数( REST RESTful:接受参数,访问类型可以为:get、post)
@app.route("/login/<account>/<password>", methods=['GET', 'POST'])
@cross_origin()
def get_content(account, password):
    if uName.__eq__(account) and uPwd.__eq__(password):
        status = "200"
        rst = make_response(status)
        #处理请求头部
        rst.headers['Access-Control-Allow-Origin'] = '*'
        return rst

    status = "0"
    rst = make_response(status)
    rst.headers['Access-Control-Allow-Origin'] = '*'
    return rst


if __name__ == '__main__':
    app.run(host="0.0.0.0", port="5000", debug=True)

这个时候我们已经可以通过浏览器去测试python接口是否正常。

我们先打开命令窗口查询一个本地ip地址,后面有用到

win+r,输入cmd,输入ipconfig,查看ip地址

查看完自己的IPv4地址,打开浏览器访问

示例:http://192.168.0.230:5000/login/admin/admin

http://ip地址:端口/登陆接口的名称/用户名/密码

返回状态码:200表示成功,0表示失败。

成功之后,就可以搭建在HBuilderX搭建app项目

 

 

 

 

第二步搭建app环境

如何搭建+5App项目请自行百度

创建好项目之后我们写一个登陆的App,使用python进行验证。

 

login.html登陆模板

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title></title>
	<link href="css/mui.min.css" rel="stylesheet" />
	<link href="css/style.css" rel="stylesheet" />
	<style>
		.area {
			margin: 20px auto 0px auto;
		}
		
		.mui-input-group {
			margin-top: 10px;
		}
		
		.mui-input-group:first-child {
			margin-top: 20px;
		}
		
		.mui-input-group label {
			width: 22%;
		}
		
		.mui-input-row label~input,
		.mui-input-row label~select,
		.mui-input-row label~textarea {
			width: 78%;
		}
		
		.mui-checkbox input[type=checkbox],
		.mui-radio input[type=radio] {
			top: 6px;
		}
		
		.mui-content-padded {
			margin-top: 25px;
		}
		
		.mui-btn {
			padding: 10px;
		}
		
		.link-area {
			display: block;
			margin-top: 25px;
			text-align: center;
		}
		
		.spliter {
			color: #bbb;
			padding: 0px 8px;
		}
		
		.oauth-area {
			position: absolute;
			bottom: 20px;
			left: 0px;
			text-align: center;
			width: 100%;
			padding: 0px;
			margin: 0px;
		}
		
		.oauth-area .oauth-btn {
			display: inline-block;
			width: 50px;
			height: 50px;
			background-size: 30px 30px;
			background-position: center center;
			background-repeat: no-repeat;
			margin: 0px 20px;
			/*-webkit-filter: grayscale(100%); */
			border: solid 1px #ddd;
			border-radius: 25px;
		}
		
		.oauth-area .oauth-btn:active {
			border: solid 1px #aaa;
		}
		
		.oauth-area .oauth-btn.disabled {
			background-color: #ddd;
		}
	</style>
	
    <script type="text/javascript">
    	
   		document.addEventListener('plusready', function(){
   			//console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。"
   			
   		});
   		
    </script>
</head>
<body>
	<header class="mui-bar mui-bar-nav">
		<h1 class="mui-title">登录</h1>
	</header>
	<div class="mui-content">
		<form id='login-form' class="mui-input-group">
			<div class="mui-input-row">
				<label>账号</label>
				<input id='account' type="text" class="mui-input-clear mui-input" placeholder="请输入账号">
			</div>
			<div class="mui-input-row">
				<label>密码</label>
				<input id='password' type="password" class="mui-input-clear mui-input" placeholder="请输入密码">
			</div>
		</form>
		<div class="mui-content-padded">
			<button id='login' class="mui-btn mui-btn-block mui-btn-primary">登录</button>
			</div>
		</div>
	</div>
	
</body>
</html>

 

点击登陆触发的事件:此代码块写在document.addEventListener('plusready', function(){});的下面

注意:ajax的url:换成浏览器访问成功的地址,(account.value表示App输入的用户名,password.value表示App输入的密码

                // 登陆的点击事件
		$(function(){
			var account = document.getElementById("account")
			var password = document.getElementById("password")
			var login_Btn = document.getElementById("login")
			login_Btn.addEventListener("click",function(){
				$.ajax({
					"type" :  "get",
					"url"  :  "http://192.168.0.230:5000/login/"+account.value+"/"+password.value,
					"dataType" : "json",
					success :  function(data){
						if(data == "200"){
							//响应码:200响应成功
							window.location.href = "index.html"
						}else{
							alert("用户名密码不匹配!");
						}
					},error : function(){
						alert("服务器内部出错!");
					}
				})
			})
		})

 

首页模板:只在顶部显示一下主页,用于区分是否跳转

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title></title>
	<link href="css/mui.min.css" rel="stylesheet" />
	<link href="css/style.css" rel="stylesheet" />
    <script type="text/javascript">
    	
   		document.addEventListener('plusready', function(){
   			//console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。"
   			
   		});
		
   		
    </script>
</head>
<body>
	<header class="mui-bar mui-bar-nav">
		<h1 class="mui-title">主页</h1>
	</header>
	
	
</body>
</html>

 

 

当你看到这里的时候,后面就已经没有代码了,搭建一下手机运行环境就好

 

 

第三步搭建手机运行环境


打开5+App项目中的manifest.json,修改基础配置里面的应用入口页面地址,也就是我们手机刚打开app显示的页面。

修改为login.html

 

之后,我们需要把手机设置为开发者模式,如何设置自行百度,因为手机型号不同设置方式也不同。

开发者选项中,打开usb调试,usb安装。

手机和电脑保持在同一个局域网下,连接usb

最后,在菜单栏里的运行、运行到手机或模拟器,选择运行设备,就可以测试app是否正常运行。

手机app里的登陆首页,填写用户名和密码进行测试。

测试结果,显示主页,表示可以通过ajax去调用python的后台代码

博主是个弱鸡,欢迎大家来指导。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用python做手机app后台 的相关文章

随机推荐

  • Flutter实现发送Http请求获取后端接口数据以及如何工程化封装返回数据

    当我们在开发Flutter的时候 肯定会和后端接口对接去请求后端的数据 那么本次我们将 讲解Flutter如何请求数据 以及如何封装返回结果 话不多说直接上代码 首先根据Flutter官方网站的描述 需要在pubspec yaml引入一个h
  • 马上:Android pins 模块化架构

    马上 Android pins 模块化架构 主工程的代码堆积 造成包目录结构臃肿 难区分 借用pins工程结构暂时 其相互独立的代码进行区分 为后期模块组件化 留下了灵活性 pins 原理是gradle sourceSets sourceS
  • Visual Studio连接Linux服务器编译CMake项目,生成在Linux上运行的程序

    本文基于的开发环境说明 window系统 Windows 10 企业版 64位操作系统 Linux系统 BigCloud Enterprise Linux 7 8 Core Visual Studio Microsoft Visual St
  • eclipse中设置jsp文件的默认编码格式为utf-8

    eclipse中设置jsp文件的默认编码格式为utf 8 我们在创建jsp文件时 经常遇到生成的jsp文件中的编码格式默认为iso 8859 1 这样的编码由于不支持中文 所以我们需要手动把它改为utf 8编码 这样会浪费我们很多时间 所以
  • 神经网络学习小记录74——Pytorch 设置随机种子Seed来保证训练结果唯一

    神经网络学习小记录74 Pytorch 设置随机种子Seed来保证训练结果唯一 学习前言 为什么每次训练结果不同 什么是随机种子 训练中设置随机种子 学习前言 好多同学每次训练结果不同 最大的指标可能会差到3 4 这样 这是因为随机种子没有
  • Windows+WSL2+SSH实现远程办公

    Windows11 WSL SSH实现远程办公 Windows11 WSL2 SSH实现远程办公 主机配置 远程启动PC 设置DMZ主机 下载WSL 设置WSL为终端默认Shell和SSH自动启动 设置Windows和Ubuntu中SSH的
  • Ubuntu18.04 离线安装gcc,g++,make依赖包

    1 离线安装背景 因为项目现场的服务器无法连接互联网 只有内网环境 但是需要安装redis和nginx 所以需要安装gcc g make等依赖包 2 如何获取依赖包 需要准备一台可以连接互联网的电脑 如 个人电脑上的虚拟机安装一个与服务器一
  • jeecg excel 导入到java

    TSAttachment tsAttachment systemService getEntity TSAttachment class ttachementId 获得excel List
  • 2019最近计算机毕业设计-题目汇总大全-系列3

    课题名称 备注 初等数学类人答题中的读文作图理论研究及应用 数字图像加密关键技术研究与实现 FitzHuge Nagumo 模型及其在图像处理中的应用 基于图形硬件加速的实时布料动画系统设计与实现 基于GAN的人脸图像生成 基于智能视觉理解
  • jetson装jtop

    问题与背景 可以进行远程操作之后 ssh和ui 就可以进行控制台指令 ui界面 文件上传下发的基本操作了 但是jetson毕竟是体积小 所能承载的硬件性能有限制 在程序调试与开发的过程中 还是希望监控一下设备的性能情况 包括cpu gpu
  • VS2013+openCV2.4.10环境配置

    一 openCV环境配置步骤 1 下载opencv 2 4 10到任意文件夹 然后解压 配置环境变量PATH F opencv opencv build x86 vc12 bin 按你自己存放的地址 opencv 2 4 10下载链接 ht
  • Android中so使用知识和问题总结以及插件开发过程中加载so的方案解析

    转自 https blog csdn net jiangwei0910410003 article details 52312451 一 前言 Android中有时候为了效率以及平台开发库的支持 难免会用到NDK开发 那么都会产生一个so文
  • Java之StringUtils的常用方法

    StringUtils 方法的操作对象是 Java lang String 类型的对象 是 JDK 提供的 String 类型操作方法的补充 并且是 null 安全的 即如果输入参数 String 为 null 则不会抛出 NullPoin
  • Unittest自动化测试框架vs Pytest自动化测试框架

    引言 前面一篇文章Python单元测试框架介绍已经介绍了python单元测试框架 大家平时经常使用的是unittest 因为它比较基础 并且可以进行二次开发 如果你的开发水平很高 集成开发自动化测试平台也是可以的 而这篇文章主要讲unitt
  • Postman实现数据驱动---一个简单的登录案例

    我理解的数据驱动就是把一个请求中要传入的值设置为变量 比如一个登录的接口 请求在发送的时候要填入用户名 密码等一些信息 用户名和密码的值有很多种组合 设置为变量就会非常方便 话不多说 直接看例子 在登录界面 抓包登录请求 可以看到登录时需要
  • 计算机不在同一个网络,电脑设置ip地址提示默认网关不在由ip地址和子网掩码定义的同一网络段上怎么办...

    最近有用户要对电脑ip地址进行设置的时候 却弹出窗口 提示默认网关不在由ip地址和子网掩码定义的同一网络段上 这该怎么办呢 通常网关与主机IP应该在同一网段 否则无法通信 可能是配置有问题 下文告诉大家具体解决方法 默认网关不在由ip地址和
  • FFMpeg 实现视频编码、解码

    FFMpeg 作为音视频领域的开源工具 它几乎可以实现所有针对音视频的处理 本文主要利用 FFMpeg 官方提供的 SDK 实现音视频最简单的几个实例 编码 解码 封装 解封装 转码 缩放以及添加水印 接下来会由发现问题 分析问题 解决问题
  • 如何成为一名合格的前端开发者?

    个人 懂得都懂 我觉得会 Ctrl C 和 Ctrl V 才是合格 这是对老板讲的 一 JavaScript基础 前端工程师吃饭的家伙 深度 广度一样都不能差 变量和类型 1 JavaScript规定了几种语言类型 2 JavaScript
  • k8s系统获取真实客户端ip

    k8s部署 系统获取真实客户端ip 我们生产中使用的是kong网关环境的架构也不同 第一种kong网管后走nginx 第二种kong网管后不走nginx kong网管后走ingress nginx 修改kong的配置 配置要信任的原始IP地
  • 使用python做手机app后台

    编辑器 HBuiderX PyCharm 主要技术 5 App python HBuiderX 下载地址 http www dcloud io hbuilderx html PyCharm 下载地址 http www jetbrains c