使用python做手機app後臺

編輯器: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的後臺代碼

博主是個弱雞,歡迎大家來指導。

 

 

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章