当前位置:网站首页>梅科尔工作室-DjangoWeb 应用框架+MySQL数据库第五次培训

梅科尔工作室-DjangoWeb 应用框架+MySQL数据库第五次培训

2022-08-11 05:23:00 C_yyy89

目录

前言

1.App 登录请求与实现

1.1.views.py连接数据库

1.2.前端编程

1.2.建表(不依赖DJango)

1.3.后端编程

2.效果展示

总结


前言

本文记录梅科尔工作室IoT组DjangoWeb 应用框架+MySQL数据库第五次培训笔记,主要包括鸿蒙 app 登录请求与实现(另外一种方式:不使用 model.py 文件,不执行表迁移)和动态读取文本框内数据内容 2.Django 后端数据验证(MySQL 数据库数据查询)

这里感谢潘学姐的讲解!辛苦啦!


1.App 登录请求与实现

1.1.views.py连接数据库

代码如下:

try:
    ct = pymysql.connect(host='127.0.0.1',  # 或者是写localhost
                          port=3306,  # 端口号
                          user='root',  # MySQL登录用户名
                          password='xxx',  # MySQL登录密码
                          db='test2',  # 要连接的数据库名称
                          charset='utf8')  # 表的字符集
    print("数据库连接成功")
except pymysql.Error as er:
    print('连接失败'+str(er))

1.2.前端编程

Hml代码如下:

<div class="cb-container">
    <div class="cb-title">
        <text class="cb-title-text">
            登录测试
        </text>
    </div>
    <image src="../../common/images/123.png"></image>
    <div class="container1">
        <div>
            <input name="username" class="input" type="text" maxlength="10" placeholder="用户名" onchange="inputAccount"/>
        </div>
    </div>
    <div class="container2">
        <div>
            <input name="password" class="input" type="password" maxlength="10" placeholder="密码" onchange="inputPassword"/>
        </div>
    </div>
    <div class="container">
        <button onclick="onClick" class="btn-map" style="background-color: darkturquoise; height: 50px;">立即登录</button>
    </div>
    <div>
        <text>
            {
   {winfo}}
        </text>
    </div>
</div>

效果如下: 

JS文件代码如下:

import router from '@system.router';
import fetch from '@system.fetch';
import qs from 'querystring';

export default {
    data:{
        winfo:"" //定义winfo用于存放后端反馈数据
    },
    inputAccount(a){
        this.username = a.value;
    },
    inputPassword(a){
        this.password = a.value;
    },
    onClick(){
        fetch.fetch({
            url:`http://127.0.0.1:8007/student/AppReq1/`, //后端路径,一定不能错,用的是反单引号
            data: qs.stringify({'username':'123456','password':'12345'}),//验证,将字符串转发给后端,后端会受到这个请求
            responseType:"json",//请求的参数类型
            method: "POST",
            success:(resp)=>
            {
                this.winfo = resp.data;//令获取到的后端数据赋给winfo
                console.log("返回的数据:"+this.winfo);//打印出数据
            },
            fail:(resp)=>
            {
                this.winfo = resp.data;//令获取到的后端数据赋给winfo
                console.log("获取数据失败:"+this.winfo)//打印出数据
            }
        });
    }
}

css代码不再展示,写的很烂啊哈哈,头疼!

1.2.建表(不依赖DJango)

 这里使用的是Navicat,在左侧栏,选中想要建表的数据库,右键选择新建表即可,原理就是跳过Django直接对数据库操作,不需要代码,如下所示:

注意,建好表之后,后端代码要和表名以及表中数据对应。

1.3.后端编程

路径新增 login

from django.urls import path
from . import views
from student.views import AppReq1,login
app_name ='student'
urlpatterns = [
    path('AppReq1/', AppReq1.as_view()),
    path('login/', login.as_view()),
]

views.py新增login类

class login(APIView):  # login类视图
    def post(self,request):  # 创建post方法
        username = request.data.get("username")  # 获取前端反馈值username
        password = request.data.get("password")  # 获取前端反馈值password
        print(username)
        cur = ct.cursor()  # 创建游标
        sql = "select * from login where name =%s"  # sql语句查询数据表数据,要和数据表一样
        values = (username)
        try:
            if cur.execute(sql, values):  # 执行sql语句
                ct.commit()
                results = cur.fetchall()
                for row in results:
                    # 获取到的列表对应列,注意id为第0列
                    Pusername = row[1]  # 获取数据name
                    Ppassword = row[2]  # 获取数据pwd
                    print(Pusername)  # 打印Pusername验证是否获取
                    print(Ppassword)  # 打印Ppassword验证是否获取

                if password ==Ppassword:  # 验证密码是否正确
                    print("账号密码验证通过")
                    return HttpResponse('欢迎尊贵的'+Pusername)
            else:
                print('查无此人!')
        except pymysql.Error as e:
            print("查无此人:"+str(e))
            return HttpResponse("请求失败")

 注意点:前端反馈给后端的数据键值对的“键”,一定要和后端对应,后端获取表中数据一定要和表中数据对应。

2.效果展示

 前端展示:

后端展示: 


总结

以上就是第四次培训的笔记内容和效果展示本文,主要就是前后端与数据的对应,感谢潘姐!!!

原网站

版权声明
本文为[C_yyy89]所创,转载请带上原文链接,感谢
https://blog.csdn.net/ayaxx1314/article/details/125946663