上海古都建筑设计集团,上海办公室装修设计公司,上海装修公司高质量的内容分享社区,上海装修公司我们不是内容生产者,我们只是上海办公室装修设计公司内容的搬运工平台

Django和HarmonyOS-FA模型ArkTS语言的登录功能实现

guduadmin682024-11-28

目录

前言

一、Arkts(DevEco Studio)

登陆页面及登录逻辑实现(.ets)

二、Django后端

1、实现数据库的连接(views.py)

2、登录功能实现(views.py)

三、实现Django、mysql、arkts之间的交互

1、Django连接数据库

2、预览器中输入登录账号和密码

3、Django接收数据并与mysql数据库的数据进行验证

4、返回数据到Arkts

四、注意事项

1、配置setting中的database

2、models

3、在urls.py中添加login

4、数据库要添加数据


 

 

 

前言

通过Django与Arkts的连接,实现登录功能

一、Arkts(DevEco Studio)

登陆页面及登录逻辑实现(.ets)

import router from '@ohos.router';
import http from '@ohos.net.http';
@Entry
@Component
struct Index {
  @State username: string = ''
  @State password: string = ''
  S_login() {
    let httpRequest = http.createHttp();
    let url = "http://127.0.0.1:8000/S_app/S_login/"
    httpRequest.request(
      // 填写HTTP请求的URL地址,可以带参数也可以不带参数。URL地址需要开发者自定义。请求的参数可以在extraData中指定
      url,
      {
        method: http.RequestMethod.POST, // 可选,默认为http.RequestMethod.GET
        // 开发者根据自身业务需要添加header字段
        header: {
          'Content-Type': 'application/json'
        },
        // 当使用POST请求时此字段用于传递内容
        extraData: {
          "username": this.username,
          "password": this.password
        },
        connectTimeout: 6000, // 可选,默认为60000ms
        readTimeout: 6000, // 可选,默认为60000ms
      }, (err, data) => {
      if (!err) {
        // data.result为HTTP响应内容,可根据业务需要进行解析
        if (data.responseCode == 200) {
          console.info("传递成功")
          console.info("从服务器返回接口返回数据成功,传递参数" + data.result)
        }
        console.info('Result:' + data.result);
        console.info('code:' + data.responseCode);
        // data.header为HTTP响应头,可根据业务需要进行解析
        console.info('header:' + JSON.stringify(data.header));
        console.info('cookies:' + data.cookies); // 8+
        if(data.result == '登录成功') {
          router.push({
            url: 'pages/shouye',
          });
        }
      } else {
        console.info('error:' + JSON.stringify(err));
        // 当该请求使用完毕时,调用destroy方法主动销毁。
        httpRequest.destroy();
      }
    }
    );
  }
  build() {
    Row() {
      Column({space:17}) {
        TextInput({ placeholder: '输入手机号' })
          .width(300)
          .height(60)
          .fontSize(20)
          .onChange((value: string) => {
            this.username = value
          })
        TextInput({ placeholder: '输入密码' })
          .width(300)
          .height(60)
          .fontSize(20)
          .type(InputType.Password)
          .onChange((value: string) => {
            this.password = value
          })
        Button('登录')
          .width(300)
          .height(60)
          .fontSize(20)
          .backgroundColor('#0F40F5')
          .onClick(() => {
            this.S_login();
          })
      }
      .width('100%')
    }
    .height('100%')
  }
}

二、Django后端

1、实现数据库的连接(views.py)

try:
    con = pymysql.connect(
        host='127.0.0.1',
        port=3306,
        user='root',
        password='123456',
        db='S_app')
    print('数据库连接成功')
except pymysql.Error as e:
    print('数据库连接失败'+str(e))

2、登录功能实现(views.py)

class S_login(APIView):
    def post(self, request):
        username = request.data.get("username")
        password = request.data.get("password")
        print(username)
        cur = con.cursor()
        sql = 'select * from s_app_login where username=%s'
        values = (username)
        try:
            if cur.execute(sql, values):
                con.commit()
                results = cur.fetchall()
                for row in results:
                    Pusername = row[1]
                    Ppassword = row[2]
                if password == Ppassword:
                    print('登录成功')
                    return HttpResponse('登录成功')
                else:
                    print('密码错误')
                    return HttpResponse('密码错误')
            else:
                print('查无此人')
        except pymysql.Error as e:
            print('查无此人' + str(e))
            return HttpResponse('请求失败')

三、实现Django、mysql、arkts之间的交互

1、Django连接数据库

Django和HarmonyOS-FA模型ArkTS语言的登录功能实现,b1b2a0d319e01db73f4a4b4f5020ba06.jpeg,第1张

2、预览器中输入登录账号和密码

Django和HarmonyOS-FA模型ArkTS语言的登录功能实现,1f0bc7a84d29496d8783df00951f7087.png,第2张

3、Django接收数据并与mysql数据库的数据进行验证

显示用户输入的账号,若成功验证则显示登陆成功

Django和HarmonyOS-FA模型ArkTS语言的登录功能实现,3a96dbe76f6c45139c27f65155669c60.png,第3张

 显示用户输入的账号,若未成功验证则显示密码错误

Django和HarmonyOS-FA模型ArkTS语言的登录功能实现,f972c09d2229448c906da528adaae1bf.png,第4张

4、返回数据到Arkts

若成功验证则返回数据到arkts,页面进入首页Django和HarmonyOS-FA模型ArkTS语言的登录功能实现,c18e76cdf93a429ea3842981c5aea250.png,第5张

Django和HarmonyOS-FA模型ArkTS语言的登录功能实现,faa41f91d4e54f90916cbbe504bf13be.png,第6张

若未成功验证则返回数据到arkts,页面不进入首页

Django和HarmonyOS-FA模型ArkTS语言的登录功能实现,cc126536e4d54911bc0f638c447bff69.png,第7张

Django和HarmonyOS-FA模型ArkTS语言的登录功能实现,31311cff96194c9bb5b4a88ba2e86260.png,第8张

 

四、注意事项

1、配置setting中的database

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'S_app',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }
}

2、models

class login(models.Model):
    username = models.CharField(max_length=32)
    password = models.CharField(max_length=32)

3、在urls.py中添加login

path('S_login/', S_login.as_view()),

4、数据库要添加数据

例如:

Django和HarmonyOS-FA模型ArkTS语言的登录功能实现,1b48fdbc898f44c8b901ecc68cb6ac94.png,第9张

 

 

网友评论

 
 梦见猫很温顺的让来摸  梦见自己怀孕流产  梦见夏天下雪了是什么预兆