python实训day5

news2024/11/23 2:05:11

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_())

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WinForm 关闭指定的窗体

在需要关闭某一个不是当前窗体的时候&#xff0c;一般需要先实例化该窗体才能使用关闭方法&#xff0c;但是实例化的时候这个窗体就又创建了一次导致关不掉。 根据窗体名称关闭指定的窗体&#xff1a; Application.OpenForms["窗体名字"].Close(); PS: this.Invoke…

MySQL理解-下载-安装

MySQL理解: mysql:是一种关系型数据库管理系统。 下载&#xff1a; 进入官网MySQLhttps://www.mysql.com/ 找到download 滑动到最下方&#xff1a;有一个开源社区版的链接地址&#xff1a; 然后就下载完成了 安装&#xff1a; 双击&#xff1a; 一直next 一直next这一步&…

Centos7创建mysql容器

Centos7创建mysql容器 目录 Centos7创建mysql容器安装Docker安装Mysql镜像创建Mysql容器进入容器并执行命令远程连接授权扩展&#xff1a;为Mysql做文件映射 安装Docker 确保你的宿主机上安装了Docker&#xff0c;可以参考文章&#xff1a;Centos7安装Docker 安装Mysql镜像 …

手机越用越慢?试试这4个秘籍,让手机流畅如新

智能手机作为日常生活的得力助手&#xff0c;最初总是以惊人的速度和流畅性给我们留下深刻印象。 但你有没有发现&#xff0c;随着时间的推移&#xff0c;手机似乎开始变得不那么敏捷&#xff0c;甚至出现了反应迟缓和卡顿的情况&#xff1f; 别让这个问题困扰你,下面是四个关…

内网穿透小工具

内网穿透小工具 前言 当在本地或者虚拟机&#xff0c;内网搭建了项目&#xff0c;数据库。可是在外网无法访问。下面的两款小工具可以暂时实现内网穿透能力。&#xff08;不支持自定义域名&#xff0c;但是不限制隧道数量&#xff01;且免费&#xff01;免费&#xff01;免费…

宝塔面板之 wwwroot修改不了权限

宝塔使用Apache环境&#xff0c;搭建网站出现 You don’t have permission to access this resource.Server unable to read h出错时的解决办法 今天由于某些原因导致我宝塔 在Apache和Nginx运行环境下不断切换&#xff0c;结果我网站全部不能正常打不开了 结果我发现原本宝塔…

RHCE这玩意儿好考吗,到底有没有用?

在信息技术领域&#xff0c;各类认证层出不穷&#xff0c;而其中最受关注之一的就是RHCE&#xff08;Red Hat Certified Engineer&#xff09;。作为全球领先的开源解决方案提供商&#xff0c;红帽公司推出的认证体系因其高标准和实际应用价值而备受认可。RHCE认证不仅是对个人…

高校外卖点餐系统

摘 要 随着互联网的快速发展&#xff0c;外卖点餐已经成为人们生活中的一部分。为了满足高校学生的需求&#xff0c;本文设计和实现了一个基于Java Web的高校外卖点餐系统。该系统采用B/S架构&#xff0c;使用Java语言和SSM框架进行开发&#xff0c;前端使用Vue框架进行设计。…

560.滑动窗口最大值

滑动窗口最大值 239. 滑动窗口最大值 - 力扣&#xff08;LeetCode&#xff09; 题目大意&#xff0c;返回每个窗口内的最大值。 思路-优先队列 优先队列&#xff08;堆&#xff09;&#xff0c;其中的大根堆可以实时维护一系列元素中的最大值。 每当我们向右移动窗口时&#…

vscode中快捷生成自定义vue3模板

需求描述 新建 vue 文件后&#xff0c;需要先写出 vue3 的基础架构代码&#xff0c;手动输入效率低下&#xff01; 期待&#xff1a;输入 v3 按 Tab 即刻生成自定义的vue3模板&#xff08;如下图&#xff09; 实现流程 vscode 的设置中&#xff0c;选择 用户代码片段 输入 vue…

windows远程桌面你会了吗?

1、当你发现正常连接无法连接时&#xff1f; 试试以管理员身份连接 mstsc /admin /v:IP 2、当本机与远程桌面分辨率不一致时? 指定分辨率连接&#xff0c;如1920*1080 mstsc /w:1920 /h:1080 /v:IP 适应本机分辨率连接 mstsc /span /v:IP 3、当远程连接的端口不是3389…

边缘计算VNC智能盒子如何助力HMI设备实现二次开发?

HMI&#xff08;Human-Machine Interface&#xff09;又称人机界面&#xff0c;是用户与机器之间交互和通信的媒介。今天带你了解智能盒子如何助力HMI设备实现二次开发&#xff1f; HMI设备被广泛应用在工业自动化中&#xff0c;具有显示设备信息&#xff0c;实时监测&#xf…

高德.js2.0绘制多条折线(轨迹)及清除所有折线

2.0版本的地图,需要绘制多条折线的时候,就需要循环生成,因此也需要循环清除 for (let j 0; j < combinedArray.length; j) {const item combinedArray[j];this.polyline new AMap.Polyline({map: this.map,path: item,showDir: true,strokeColor: "#28F", //线…

海豚调度调优 | 如何解决任务被禁用出现的Bug

&#x1f4a1; 本系列文章是 DolphinScheduler 由浅入深的教程&#xff0c;涵盖搭建、二开迭代、核心原理解读、运维和管理等一系列内容。适用于想对 DolphinScheduler了解或想要加深理解的读者。 祝开卷有益。 本系列教程基于 DolphinScheduler 2.0.5 做的优化。&#xff…

将某列缺失分隔符的文字读入 Excel

有个逗号分隔的 txt&#xff0c;共 10 列&#xff0c;第 3 列有时候缺少分隔符&#xff0c;导致该列缺失&#xff0c;数据不齐只剩 9 列。比如最后两行&#xff1a; 01-0104-0133,MAYO, RONIE #2,202403,2024-03-21 22:51:43.000,1449.49,0.00,0.00,08,6CC6BDAC7E45 17-1782-02…

MyBatis-在分步查询的基础上配置懒加载

Hibernate中&#xff0c;涉及到关联查询的时候&#xff0c;懒加载是默认就开启着的&#xff0c;前面讲过设计懒加载就是&#xff0c;在关联查询中&#xff0c;真正需要用到关联的对象的时候&#xff0c;才发起sql语句&#xff0c;从数据库中查询数据&#xff0c;从而实现提升数…

Django安装与启动

1、Django是什么&#xff1f; 基于python的Web开发框架&#xff0c;支持用户快速开发安全、可维护的网站 2、怎么安装&#xff1f; pip install Django4.2 3、如何启动&#xff1f; 不写ip和端口时候&#xff0c;默认启动http://127.0.0.1:8000/ python .\manage.py runse…

uniapp开发H5、手机APP、微信小程序 可拖动菜单按钮

ml-fab 插件地址&#xff1a;https://ext.dcloud.net.cn/plugin?id18909 1、可拖拽悬浮按钮 ml-fab&#xff0c;支持自定义插槽&#xff0c;点击可展开一个图标按钮菜单&#xff0c;可随意拖拽。 2、支持自定义插槽&#xff0c;可实现自定义配置。 3、操作简单易上手。 ml-f…

197.回溯算法:复原IP地址(力扣)

代码解决 class Solution { public:// 存储最终结果的向量vector<string> result;// 判断字符串s从start到end范围内的子串是否是一个合法的IP地址段bool isValid(const string& s, int start, int end){if (start > end) {return false; // 起始位置大于结束位置…

设计师必备的交互原型图软件

如果你是UI/UX设计师&#xff0c;你肯定会在工作中涉及到交互原型图的设计。在设计交互原型图时&#xff0c;我们通常需要找到一些适合自己的交互原型图设计软件来制作高质量的交互原型图。那么我们应该如何选择合适的交互原型图设计软件呢&#xff1f;来自10年的高级交互设计师…