结合上一期的基于pyqt5开发的图书管理系统UI(带登录页面)文章做一个此章节的补充。因为老师说需要结合数据库实现登录系统。于是我就想起了自己在腾讯云上买的一个服务器。因此经过百度查询大量的资料,功夫不负有心人,在这个Pyqt5实现的可视化界面上,实现了通过服务器的数据库实现登录、和注册账号。因为老师要求我们做一个串口助手,因此也简单实现了串口助手的功能。

一、python登录系统接入腾讯云服务器数据库

由于Python和服务器相关的知识都是自己自学的,所有很多专业知识可能自己阐述不清楚,有什么疑问欢迎大家在评论区留言。

首先大家需要购买一台服务器,至于什么品牌的大家可以自行选择。对于第一次接触服务器相关知识来说,大家可以在服务器中安装宝塔面板。至于怎么在自己服务器安装宝塔面板,大家可以参考宝塔官网的教程宝塔面板 - 简单好用的Linux/Windows服务器运维管理面板,安装好后打开如下:

然后直接创建数据库,随便取一个名字,比如wqeq并点击进入phpmyadmin

进入后找到你创建的数据库

输入自己想创建的数据表名,字段数代表有几个输入框,比如:账号、密码,那么字段数为2。点击创建即可

创建后如上,类型选择TEXT(按照直接需求填写),长度值就代表 usname和password用户设置用户名和密码的长度,其实这就相当于excel表格,剩下的参数我也没有探究,直接点击保存即可。创建好后。

回到宝塔面板,记得设置右边的权限,设置为所有人。

我们再看Python连接服务器的代码。

需要填写的内容都在这

    def go_to_login(self):uname = self.ui.lineEdit_4.text()upwd = self.ui.lineEdit_3.text()#conn = connect(host='服务器Ip地址', user='test', password='密码',#               db='test', port=3306, charset='utf8')conn = connect(host='服务器Ip地址', user='用户名', password='密        码', db='数据库名', port=3306, charset='utf8')#  其他的保持不变#  得到一个游标对象cs1 = conn.cursor()# 2, 执行sql语句sql = """select password(创建的列名) from users(创建的表名) where usname(创建的列名) =%s """cs1.execute(sql, (uname,))result = cs1.fetchone()#这里的password和usname跟在表格当中设置的列名一致 if result == None:self.ui.label_7.setText("用户名错误,登录失败")elif result[0] == upwd:homepageWindow()self.close()else:self.ui.label_7.setText("密码错误,登录失败")

第一次的小白可以和我的设置的数据名保持一致防止出错。sql = """select password(创建的列名) from users(创建的表名) where usname(创建的列名) =%s """这里一点都不能错哦。

附上完整的登录和注册代码,因为时间关系,还要准备比赛之类的,就写了最简单毫无验证的注册登录。如果闪退就是服务器连接失败了,这里没有写连接失败的函数。如下:

    def go_to_login(self):uname = self.ui.lineEdit_4.text()upwd = self.ui.lineEdit_3.text()conn = connect(host='服务器地址', user='test', password='密码',db='test', port=3306, charset='utf8')#  得到一个游标对象cs1 = conn.cursor()# 2, 执行sql语句sql = """select password from users where usname =%s """cs1.execute(sql, (uname,))result = cs1.fetchone()if result == None:self.ui.label_7.setText("用户名错误,登录失败")elif result[0] == upwd:homepageWindow()self.close()else:self.ui.label_7.setText("密码错误,登录失败")def go_to_enroll(self):uname = self.ui.lineEdit_5.text()upwd = self.ui.lineEdit_6.text()# 打开与数据库的连接conn = connect(host='服务器地址', user='test', password='密码',db='test', port=3306, charset='utf8')cur = conn.cursor()# 判断用户名是否存在sql = 'select count(*) from users where usname=%s'# params = [uname]cur.execute(sql, (uname,))result = cur.fetchone()if result[0]:self.ui.label_8.setText('用户名已经存在,请重新注册')else:# 用户名不存在sql = 'insert into users(usname, password) values(%s, %s)'# params = [uname, upwd]result = cur.execute(sql, (uname, upwd))conn.commit()if result == 1:self.ui.label_8.setText('注册成功')else:self.ui.label_8.setText('注册失败')

二、python的串口助手

因为老师想做的是串口采集信息,串口发送指令,本来做了大概的串口助手界面,但是不符合要求,就删掉了,最终界面如下。

因为采集的信息是温湿度之类的,所有自己也想做一个用matplotlib库的数据可视化,但是确定没有太多的时间就没有深入的去研究,只加入了库,没有设置变量这些。做一个串口助手,重要的地方在,接收信息并处理,发送16进制信息等。接收信息处理等。如何提取数据有效需要实际操作,因为我们是接收stm32的数据,所以用ser.read(100)来处理,ser为一个类,9代表一次读取多少位的数据,如这串FF F5 05 02 01 00 00 01 03数据。如果发送数据则使用b=bytearray([0xFF,0xF5,0x05,0x02,0x01,0x00,0x00,0x01,0x03])
b=bytes.fromhex('FF F5 05 02 01 00 00 01 03')
ser.write(d)

因为stm32的交互大多数都是16进制,这里提供两个发送16进制的方法。

最后如果有小伙伴想要做串口助手,可以下载一个虚拟串口助手,可以模拟两个虚拟串口进行测试。最后上源码:

    def read_msg_thring(self):t = Thread(target=self.read_msg)t.start()# 接收数据def read_msg(self):global serser = serial.Serial(port="COM200",baudrate=38200,bytesize=serial.SEVENBITS,parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_TWO,timeout=0.5)print("开启成功")while True:data = ser.read(11)  # 递归读取串口if ((data[0] == 0xFF) & (data[1] == 0xFD)):if (data[2] == 0x00):x=float(int(chr(data[4]))+(int(chr(data[5]))/10))# y=float(x * 1000 / 3.3)self.ui.label_135.setText((str(x) + '0Lx'))if (data[2] == 0x01):self.ui.label_99.setText((str(int(data[4])+(int(data[5]))/10))+"℃")self.ui.label_104.setText((str(int(data[6]) +(int(data[7]))/10))+'%')def kaiq(self):# data = bytearray([0xFF,0xF5,0x05,0x02,0x01,0x00,0x00,0x01,0x03])# ser.write(data)d = bytes.fromhex('FF F5 05 02 01 00 00 01 03')ser.write(d)# ser.write(b'\xFA\xFB\x07\x01\x00\x00\x00\x00\x00')print("打开")# FF F5 05 02 01 00 00 01 03
def guan(self):data = bytearray([0xFF,0xF5,0x05,0x02,0x01,0x00,0x00,0x02,0x02])ser.write(data)

这里有接收和发送函数,大家可以参考,因为接收是while True循环,所有加了个多线程,其中完整代码还有信号实现多线程的例子,感兴趣的朋友可以下载完整源码查看。下载完程序直接运行main.py及可以运行,还有一些没有完善的功能就不细说了。希望对于想做串口助手的小伙伴和实现登录验证的小伙伴有所帮助。源码请看我的个人中心,不需要积分纯属免费哦,有什么疑问欢迎评论区打扰。

python写的串口助手并连接腾讯云服务器数据库相关推荐

  1. Mac连接腾讯云服务器

    Mac连接腾讯云服务器 这下载什么XShell,多此一举. 第一步:打开你的终端 第二步:输入ssh -p 22 你的服务器角色一般是root@你的服务器公网 第三步:输入密码 第四步:点赞点赞点赞

  2. 远程连接腾讯云MySQL数据库

    远程连接腾讯云MySQL数据库 默认情况下,Centos系统的Mysql数据库是不允许被远程访问的 所以我们需要开启 输入mysql -uroot -p,使用Mysql 使用mysql数据库,Mysq ...

  3. 如何用Xshell连接腾讯云服务器并且跑实验

    如何用Xshell连接腾讯云服务器并且跑实验 首先需要(购买或申请)拥有一台云服务器 记录必要的信息:[公网IP,用户名,密码] 打开Xshell 输入对应的信息: 首先新建一个连接: 在这里主机内容 ...

  4. 连接腾讯云服务器操作+SCP上传文件

    1.连接腾讯云服务器 linux打开终端(windows打开cmd) ssh -i "<下载的与云服务器关联的私钥的绝对路径>" <username>@&l ...

  5. 使用网络助手连接腾讯云服务器

    一.创建设备 1.1创建项目 1.2创建产品 1.3创建设备 1.4查看3元组信息 可以看到产品3元组信息: 设备名称:testa 产品ID:PP2QFRGUGR 密钥:w6c5FosxEIDtVPq ...

  6. 本地电脑远程连接腾讯云服务器(windows系统)并传文件

    远程连接详解 进行远程连接需要几个数据:用户名.密码.公网IP 打开本地cmd,输入命令mstsc打开远程连接面板,在计算机输入框中输入阿里云服务器的IP地址 点击"选项"展开,点 ...

  7. ssh连接腾讯云服务器

    一.生成本地SSH-KEY 1. 检查本机是否已经存在SSH-KEY Linux系统(或者WSL)在/home目录下查看是否存在.ssh文件夹,文件夹内是否存在id_rsa.pub文件: Window ...

  8. 使用navicat连接腾讯云mysql数据库

    第一步:配置防火墙 连接服务器的mysql数据库,我们首先需要在服务器上放行3306端口(MySQL服务对应的端口),进入服务器管理页面防火墙,点击添加规则,放行3306端口. 如果你的服务器配置了宝 ...

  9. Termius首次连接腾讯云服务器实例

    文章目录 一.操作步骤 1.首次连接重置密码 2.打开Termius 总结 一.操作步骤 1.首次连接重置密码 首次通过本地 SSH 客户端登录 Linux 实例之前,您需要重置默认用户名(root) ...

最新文章

  1. mybatis批量插入oracle报表达式,mybatis oracle两种方式批量插入数据
  2. 每天一道LeetCode-----计算二叉树所有根节点到叶子节点的和
  3. 代码执行漏洞-无字母数字RCE-create_function()
  4. post方法就反回了一个string字符串前台怎么接_Golang Web入门(2):如何实现一个RESTful风格的路由...
  5. centos 安装java sdk_Linux——CentOS7使用yum命令安装Java SDK
  6. matlab2c使用c++实现matlab函数系列教程-sort函数
  7. Word字体样式及样式库的使用
  8. java交通灯英文文献,194关于单片机智能交通灯控制系统设计有关的外文文献翻译成品:基于单片机的智能交通控制系统(中英文双语对照)7...
  9. 腾讯的天天快报凭什么想挑战今日头条?
  10. PL3368C电源管理IC是什么,充电器电源IC用ASEMI-PL3368C
  11. Exception in thread Thread-0 java.lang.NullPointerException
  12. wait和notify,sleep
  13. sqlmap的两种挂代理方式
  14. 从零开始搭建自己的网站一:整体步骤
  15. Tensorflow选择CPU或GPU运行
  16. Keil的安装及使用
  17. 如何正确理解维度灾难
  18. 【C语言作业7】二分法猜数游戏:先由计算机“想”一个1~100之间的数请人猜,用二分法进行猜数,计算机给出反馈,猜大额或是猜小了,直到人猜对为止。计算机记录猜的次数,以此反映猜的水平。
  19. kali下parallels tools的安装
  20. idea tomcat启动乱码������

热门文章

  1. html div 阴影效果,前端基础教程 CSS丨css3 文本阴影效果教程
  2. ​搜狐大量员工遭遇“工资补助”诈骗;​腾讯客服回应“借钱就能避免微信号被封”;TypeScript 4.7发布|极客头条
  3. 计算机辅助技术英语,计算机辅助跟踪技术,computer-aided tracking technology,音标,读音,翻译,英文例句,英语词典...
  4. 商场购物英语对话-shopping dialog
  5. Fix_Notif完全免费iMessage、FaceTime修复工具
  6. 《C#零基础入门之百识百例》(二十八)交错数组 -- foreach求和
  7. 用了 AppiumDriver 后,WebDriverWait 中无法使用 AppiumDriver 特有的方法
  8. Apple主推的智能家居是什么、怎么用?一篇文章带你从零完全入门 HomeKit
  9. 才二十来岁,你就挺着个大肚子?
  10. 阿里合伙人范禹:常挂在阿里技术人嘴边的四句土话