前言
使用軟件:pycharm專業版、DevEco studio
文章中的mm為簡寫
# connect mysql
try:
cnt = pymysql.connect(host='localhost',
port=3306,
user='用戶',
mm='',
db='數據庫名稱',
charset='utf8')
print('數據庫連接成功')
except pymysql.Error as e:
print('數據庫連接失敗' + str(e))
# 登錄方法
class login(APIView):
def post(self, request):
username = request.data.get('username') # 獲取前端傳輸的用戶名和密碼
password = request.data.get('password')
# print(username)
# print(password)
cur = cnt.cursor() # 創建sql游標
sql = 'select * from login where name=%s' # sql語句查詢指定表指定元素
values = (username)
try:
if cur.execute(sql, values):
cnt.commit()
results = cur.fetchall()
print(results)
for row in results: # 循環調出用戶名和密碼
Pusername = row[1]
Ppassword = row[2]
# print(Pusername)
# print(Ppassword)
if password in Ppassword: # 驗證
print('賬號密碼驗證通過')
return HttpResponse('登陸成功')
else:
print('查無此人')
return HttpResponse('查無此人')
except pymysql.Error as e:
print('查無此人'+str(e))
return HttpResponse('請求失敗')
注意需要在下級urls.py
文件中設置路由
因為login
方法為類方法,不能直接使用views.login
調用,需要使用as_view()
方法,這個方法將函數打包在views
中,返回符合要求的一個request
注意/
符號
from .views import login
urlpatterns = [
path('login/', login.as_view())
]
需要注意的幾個點主要是HarmonyOS
的fetch()
方法進行網絡請求,以及數據格式的解析
# login.js
import fetch from '@system.fetch';
import qs from 'querystring';
import router from '@system.router';
export default{
data:{
winfo:""
},
inputAccount(e){
// 獲取文本框數據
this.username = e.value;
},
inputPassword(e){
this.mm = e.value;
},
onClick(){
fetch.fetch({
// 發送請求
url:`http://127.0.0.1:8000/目標文件/login/`,
data: qs.stringify({
'username':'this.username', 'mm':'this.mm'}), // 發送到後端的數據
responseType:'json',
method:'POST',
success:(resp)=>
{
this.winfo = resp.data;
console.log('返回的數據:'+this.winfo)
if(this.winfo=='登陸成功'){
// 登錄成功後跳轉頁面
router.push({
uri:'pages/request/request'
})
}
},
fail:(resp)=>
{
this.winfo = resp.data;
console.log('獲取數據失敗:' + this.winfo)
}
})
}
}
注意:需在config.js
中配置好網絡請求