python实训day5

1、

from ming import getconn
conn = getconn("gaoming")
print()
sql = [("select * from dept", ()),#"dept"的表中选择所有列
       ("delete from person where sid<%s", (4,)),#删除"person"表中"sid"列小于4的记录
       ("update person set sage=sage+%s", (5,))]#更新"person"表中"sage"列的值,将其增加5
with conn.cursor() as cs:
        for cmd, param in sql:
                ss = cmd.split()[0].lower()
                eff = cs.execute(cmd, param)
                if ss == 'select':
                        rows = cs.fetchall()
                        for row in rows:
                                print('-> ', row)
                elif ss == 'update':
                        print("*** %d 行距离被更新 ***" % eff)
                elif ss == 'delete':
                        print("*** %d 行距离被删除 ***" % eff)
                elif ss == 'insert':
                        print("*** 成功插入%d 行记录 ***" % eff)

2、

import sys
import time
from datetime import datetime
from PyQt5.QtWidgets import *
# 创建一个应用程序
app = QApplication(sys.argv)
# 创建一个窗口
win = QWidget()
# 设置标题
win.setWindowTitle(" 一个简单的窗口和简单点击事件")
# 设置窗口的位置和大小
win.setGeometry(400, 400, 500, 350)
# 创建一个按钮
button1 = QPushButton("点击显示次数")
k = 1
# 定义按钮的事件处理
def on_button1_click():
        global k
        QMessageBox.information(win, "消息", "我被点击了" + str(k) + "次")
        k += 1
# 创建一个垂直布局管理器,并将按钮和标签组件加 入其中
layout = QVBoxLayout()
layout.addWidget(button1)
# 将按钮的点击信号关联到事件处理函数
button1.clicked.connect(on_button1_click)

button2 = QPushButton("点击显示当前时间")
def on_button2_click():
        while True:
                print(datetime.now())
                time.sleep(1)
layout.addWidget(button2)
button2.clicked.connect(on_button2_click)
# 设置布局为当前窗口的布局
win.setLayout(layout)
# 显示窗口
win.show()
# 运行应用程序
sys.exit(app.exec())

3、大作业

注册:

import sys
from PyQt5.QtWidgets import *

from ming import getconn
# 创建应用程序实例
app = QApplication(sys.argv)
# 创建窗口
win = QWidget()
win.setWindowTitle('注册界面')
#禁用窗口的大小更改
win.setFixedSize(500, 240)
# 创建表单布局
form_layout = QFormLayout()
# 创建标签和输入框
username_label = QLabel('用户名:')
username_input = QLineEdit()
form_layout.addRow(username_label, username_input)

password_label = QLabel('密码:')
password_input = QLineEdit()
password_input.setEchoMode(QLineEdit.Password)  # 隐藏密码输入
form_layout.addRow(password_label, password_input)

confirm_password_label = QLabel('确认密码:')
confirm_password_input = QLineEdit()
confirm_password_input.setEchoMode(QLineEdit.Password)  # 隐藏密码输入
form_layout.addRow(confirm_password_label, confirm_password_input)

# 创建注册按钮
register_button = QPushButton('注册')
register_button.clicked.connect(lambda: register(username_input.text(),
                                                 password_input.text(),
                                                 confirm_password_input.text()))

# 创建水平布局用于放置按钮
button_layout = QHBoxLayout()
button_layout.addStretch()
button_layout.addWidget(register_button)
button_layout.addStretch()

# 创建垂直布局用于放置表单和按钮
main_layout = QVBoxLayout()
main_layout.addLayout(form_layout)
main_layout.addLayout(button_layout)

# 设置窗口的布局
win.setLayout(main_layout)

# 定义注册逻辑
def register(username, password, confirm_password):
    # 这里可以添加注册逻辑,例如检查密码是否匹配,然后保存用户信息等
    if password == confirm_password:
        print(f'用户名: {username}, 密码: {password}')
        # 注册成功后的处理逻辑
        conn = getconn("gaoming")
        with conn.cursor() as cs:
            eff = cs.execute("insert into user(username,password) "
                             "values(%s,%s)", (username, password))
            conn.commit()
            if eff:
                print("*** 注册成功 ***")
                # 注册成功弹出提示框
                msg = QMessageBox(win)
                msg.setWindowTitle("注册成功")
                msg.setText("注册成功!")
                msg.exec_()
                win.close()
            else:
                print("*** 注册失败 ***")
    else:
        print('密码不匹配,请重新输入。')
        # 密码不匹配的处理逻辑

# 显示窗口
win.show()
# 运行应用程序的事件循环
sys.exit(app.exec_())

登录:

import sys
from PyQt5.QtWidgets import *
from ming import getconn

# 创建应用程序实例
app = QApplication(sys.argv)

# 连接到数据库
conn = getconn("gaoming")

# 创建登录窗口
win = QWidget()
win.setWindowTitle('登录界面')
win.setGeometry(300, 300, 500, 240)
#禁用窗口的大小更改
win.setFixedSize(500, 240)

# 创建表单布局
form_layout = QFormLayout()
# 创建标签和输入框
username_label = QLabel('用户名:')
username_input = QLineEdit()
form_layout.addRow(username_label, username_input)

password_label = QLabel('密码:')
password_input = QLineEdit()
password_input.setEchoMode(QLineEdit.Password)  # 隐藏密码输入
form_layout.addRow(password_label, password_input)

# 创建登录按钮
login_button = QPushButton('登录')
# 创建水平布局用于放置按钮
button_layout = QHBoxLayout()
button_layout.addStretch()
button_layout.addWidget(login_button)
button_layout.addStretch()

# 创建垂直布局用于放置表单和按钮
main_layout = QVBoxLayout()
main_layout.addLayout(form_layout)
main_layout.addLayout(button_layout)

# 设置窗口的布局
win.setLayout(main_layout)

# 登录函数
def login(username, password):
    if not username or not password:
        msg = QMessageBox(win)  # 传递 win 作为父窗口
        msg.setWindowTitle("登录失败")
        msg.setText("用户名或密码不能为空,请重新输入。")
        msg.exec_()
    else:
        with conn.cursor() as cs:
            cs.execute("select * from user where username = %s and password = %s", (username, password))
            result = cs.fetchone()
            if result:
                msg = QMessageBox(win)  # 传递 win 作为父窗口
                msg.setWindowTitle("登录成功")
                msg.setText(f"用户名: {username}\n密码: {password}\n登录成功。")
                msg.exec_()
            else:
                msg = QMessageBox(win)  # 传递 win 作为父窗口
                msg.setWindowTitle("登录失败")
                msg.setText("用户名或密码错误,请重新输入。")
                msg.exec_()

            # 登录按钮绑定登录函数


login_button.clicked.connect(lambda: login(username_input.text(), password_input.text()))

# 显示窗口
win.show()

# 运行应用程序的事件循环
sys.exit(app.exec_())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/749751.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaScript】JS对象和JSON

目录 一、创建JS对象 方式一&#xff1a;new Object() 方式二&#xff1a;{属性名:属性值,...,..., 方法名:function(){ } } 二、JSON格式 JSON格式语法&#xff1a; JSON与Java对象互转: 三、JS常见对象 3.1数组对象API 3.2 其它对象API 一、创建JS对象 方式一&#xff1a;new…

君諾外匯:为什么巴菲特现在加倍下注油气股票?油价上涨是主因吗?

近年来&#xff0c;以巴菲特为代表的一些顶级投资者开始在能源领域加大投资力度&#xff0c;特别是油气股票。这一转变引发了广泛关注&#xff0c;特别是在油价上涨的背景下。本文将Juno markets外匯深入分析巴菲特投资策略的变化原因&#xff0c;探讨其在能源市场的布局及未来…

如何用Vue3和Plotly.js实现一个动态3D图的在线展示

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 基于 Plotly.js 的交互式图表动画 应用场景 本代码演示了如何使用 Plotly.js 创建交互式图表动画&#xff0c;其中一个区域填充的区域在给定时间间隔内更新其数据。这种动画可用于可视化时间序列数据或展示数…

冷门赛道,视频号励志语录赛道详解,新手轻松上手

大家好&#xff0c;我是闷声轻创&#xff0c;在当今数字化时代&#xff0c;社交媒体已成为人们获取信息、分享生活和实现个人价值的重要渠道。视频号&#xff0c;作为新兴的短视频平台&#xff0c;以其独特的优势和巨大的流量潜力&#xff0c;吸引了众多创作者的目光。今天我将…

华为畅享系列多款产品升级HramonyOS 4.2版本,一篇带你解读

最近华为畅享系列多款手机陆续迎来了HarmonyOS 4.2新版本&#xff0c;华为畅享70S、华为畅享70 Pro、华为畅享60X、华为畅享60 Pro和华为畅享50 Pro都在升级计划中。这次升级的4.2版本不仅功能强大&#xff0c;重点是好玩又实用&#xff0c;速来围观&#xff01; 那本次升级版本…

基于JSP的水果销售管理网站

开头语&#xff1a;你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;B/S架构 系统展示 首页 管理员功能模块 用户前…

使用原子子表创建可重用的子组件

原子子表是一个图形对象&#xff0c;可帮助您在Stateflow图表中创建独立的子部件。原子子表允许&#xff1a; 对具有多个状态或层次结构的图表进行微小更改后&#xff0c;模拟速度更快。 在多个图表和模型中重复使用相同的状态或子表。 易于团队开发&#xff0c;适用于在同一图…

聊一聊UDF/UDTF/UDAF是什么,开发要点及如何使用?

背景介绍 UDF来源于Hive&#xff0c;Hive可以允许用户编写自己定义的函数UDF&#xff0c;然后在查询中进行使用。星环Inceptor中的UDF开发规范与Hive相同&#xff0c;目前有3种UDF&#xff1a; A. UDF--以单个数据行为参数&#xff0c;输出单个数据行&#xff1b; UDF&#…

GMSB文章六:微生物SCFA关联分析

欢迎大家关注全网生信学习者系列&#xff1a; WX公zhong号&#xff1a;生信学习者Xiao hong书&#xff1a;生信学习者知hu&#xff1a;生信学习者CDSN&#xff1a;生信学习者2 介绍 微生物短链脂肪酸&#xff08;SCFAs&#xff09;是由肠道微生物发酵膳食纤维、抗性淀粉、低…

@城规人快来抄作业!转GIS开发月薪12000+

从性价比极低的时薪&#xff0c;到相对稳定的月薪过万&#xff0c;我做对了哪些事情&#xff1f; 今天分享的是城乡规划专业的L拿到GIS开发高薪offer的故事。 初识新中地 该同学是城乡规划专业本科&#xff0c;下面称他为L同学。 L同学是今年夏天在网络上了解了GIS开发和新…

Kafka入门到精通(四)-SpringBoot+Kafka

一丶IDEA创建一个空项目 二丶添加相关依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springf…

MySQL改密

这里写目录标题 更改登录密码&#xff1a;有权限账号能登录mysql中&#xff1a;有权限账号不能登录mysql中&#xff1a;mysql5.6版本命令mysql5.7版本命令修改密码8.0版本改完后&#xff1a; mysql登录不上了本机安装了5.6后&#xff0c;又安装了mysql8.0 更改登录密码&#xf…

双麒麟系统!RK3588+银河麒麟/开放麒麟,全国产让您的产品更具竞争力

01 银河麒麟嵌入式系统介绍 银河麒麟嵌入式操作系统V10 SP1是为物联网及工业互联网场景设计的安全实时系统&#xff0c;基于Linux内核&#xff0c;采用“分域虚拟化 多域隔离”架构&#xff0c;结合了Linux的丰富生态和RTOS的硬实时能力。 该系统支持主流嵌入式芯片&#x…

“数字政协”平台如何提高政协工作效率?正宇软件助力建设!

随着信息技术的飞速发展&#xff0c;数字化已成为推动各行各业转型升级的重要力量。在政协工作中&#xff0c;数字政协平台的建设与运用&#xff0c;正成为提高政协工作效率、促进民主协商的重要手段。本文将从数字政协平台的功能特点、优势分析以及实践应用等方面&#xff0c;…

【Android】【Compose】Compose里面的Row和Column的简单使用

内容 Row和Column的简单使用方式和常用属性含义 Row 在 Jetpack Compose 中&#xff0c;Row 是一种用于在水平方向排列子元素的布局组件。它类似于传统 Android 中的 LinearLayout&#xff0c;但更加灵活和强大。 Row的代码 Composable inline fun Row(modifier: Modifier…

小九首度回应与小水分手传闻揭秘

#小九首度回应&#xff01;与小水分手传闻揭秘#近日&#xff0c;泰国娱乐圈掀起了一股热议的狂潮&#xff01;传闻中的“金童玉女”组合——“小水”平采娜与“小九”NINE疑似分手的消息&#xff0c;如同巨石投入平静的湖面&#xff0c;激起了千层浪花。而在这股狂潮中&#xf…

高效同步的PWM升压DC/DC转换器 SD6201/SD6201-AF

SD6201是高效同步的PWM升压DC/DC转换器优化为介质提供高效的解决方案电力系统。这些设备在输入电压介于0.9V和4.4V之间&#xff0c;带有1.4MHz固定频率切换。这些功能通过允许使用小型、薄型电感器以及陶瓷电容器。自动PWM/PFM轻负载下的模式切换可节省电力提高了效率。电压在2…

武汉星起航:挂牌上海股权托管交易中心,亚马逊影响力再掀波澜

在全球化日益加深的今天&#xff0c;跨境电商行业正迎来前所未有的发展机遇。而在这个风起云涌的时代&#xff0c;武汉星起航电子商务有限公司以其卓越的实力和前瞻性的战略眼光&#xff0c;成功在上海股权托管交易中心挂牌展示&#xff0c;正式登陆资本市场&#xff0c;这一重…

CSS的媒体查询:响应式布局的利器

关于CSS的媒体查询 CSS媒体查询是CSS层叠样式表(Cascading Style Sheets)中的一个核心功能&#xff0c;它使得开发者能够根据不同的设备特性和环境条件来应用不同的样式规则。这是实现响应式网页设计的关键技术&#xff0c;确保网站或应用能够在多种设备上&#xff0c;包括桌面…

提升用户转化率秘诀!Xinstall的H5拉起应用技术让您领先一步!

在移动互联网时代&#xff0c;App的推广和运营面临着诸多挑战。其中&#xff0c;H5页面如何高效、便捷地拉起应用&#xff0c;成为了一个亟待解决的问题。今天&#xff0c;我们就来谈谈如何利用Xinstall品牌&#xff0c;轻松解决这一痛点&#xff0c;提升用户体验&#xff0c;助…