目录

前言

一、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、mysqlarkts之间交互

1、Django连接数据库

b1b2a0d319e01db73f4a4b4f5020ba06.jpeg

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

1f0bc7a84d29496d8783df00951f7087.png

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

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

3a96dbe76f6c45139c27f65155669c60.png

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

f972c09d2229448c906da528adaae1bf.png

4、返回数据到Arkts

若成功验证返回数据到arkts页面进入首页c18e76cdf93a429ea3842981c5aea250.png

faa41f91d4e54f90916cbbe504bf13be.png

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

cc126536e4d54911bc0f638c447bff69.png

31311cff96194c9bb5b4a88ba2e86260.png

 

四、注意事项

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、数据库添加数据

例如

1b48fdbc898f44c8b901ecc68cb6ac94.png

 

 

原文地址:https://blog.csdn.net/FushiYin/article/details/129938006

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_33744.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注