Python学习打卡:day17

day17

笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了

121、Python 操作 MySQL 基础使用

pymysql

在Python中,使用第三方库:pymysql 来完成对MySQL数据库的操作。

安装:

1、pip install pymysql;

2、或者 PyCharm中安装包 PyMySQL(使用清华源:https://pypi.tuna.tsinghua.edu.cn/simple)。

创建到 MySQL 的数据库链接

"""
演示 Python pymysql库的基础操作
"""
from pymysql import Connection

# 构建到 MySQL数据库的链接
conn = Connection(
    host = "localhost",     # 主机名(IP)
    port = 3306,            # 端口
    user= 'root',           # 账户
    password= '666666'      # 密码
)

# 打印 MySQL 数据库软件信息
# 验证是否连接上指定数据库
print(conn.get_server_info())

# 关闭链接
conn.close()

执行 SQL 语句

执行非查询性质的SQL语句

示例代码如下:

"""
演示 Python pymysql库的基础操作
"""
from pymysql import Connection

# 构建到 MySQL数据库的链接
conn = Connection(
    host = "localhost",     # 主机名(IP)
    port = 3306,            # 端口
    user= 'root',           # 账户
    password= '666666'      # 密码
)

# # 打印 MySQL 数据库软件信息
# # 验证是否连接上指定数据库
# print(conn.get_server_info())

# 执行非查询性质的 SQL
cursor = conn.cursor()      # 获取到游标对象

# 选择数据库
conn.select_db("test")
# 执行 sql
cursor.execute("create table test_pymysql (id int);")

# 关闭链接
conn.close()
执行查询性质的SQL语句
"""
演示 Python pymysql库的基础操作
"""
from pymysql import Connection

# 构建到 MySQL数据库的链接
conn = Connection(
    host = "localhost",     # 主机名(IP)
    port = 3306,            # 端口
    user= 'root',           # 账户
    password= '666666'      # 密码
)

# print(conn.get_server_info())

# 执行非查询性质的 SQL
# 获取到游标对象
cursor = conn.cursor()      

# # 选择数据库
# conn.select_db("test")
# # 执行 sql
# cursor.execute("create table test_pymysql (id int);")

# 选择数据库
conn.select_db("world")
# 使用游标对象,执行 sql 语句
cursor.execute("select * from student_1")
# 获取查询结果
results = cursor.fetchall()
for r in results:
    print(r)

# 关闭链接
conn.close()

122、Python 操作 MySQL 数据的插入

直接使用:

cursor.execute("insert into student_2 values(10002, '林俊杰', 31, '男')")

经过执行是无法将数据插入到数据表 student 中的。

因为:pymysql在执行数据插入或其它产生数据更改的SQL语句时,默认是需要提交更改的,即,需要通过代码“确认”这种更改行为。通过链接对象.commit() 即可确认此行为。

示例代码:

"""
演示使用 pymysql 库进行数据插入的操作
"""
from pymysql import Connection

# 构建到 MySQL数据库的链接
conn = Connection(
    host = "localhost",     # 主机名(IP)
    port = 3306,            # 端口
    user= 'root',           # 账户
    password= '666666',      # 密码
)

# 执行非查询性质的 SQL
cursor = conn.cursor()      # 获取到游标对象

# 选择数据库
conn.select_db("world")
### 使用Python实现打卡功能的方法 #### 方法一:基于Selenium的浏览器自动化打卡 通过安装`Selenium`库以及配置Chrome和ChromeDriver,能够模拟人类行为完成网页上的自动登录与打卡动作。 ```bash pip install selenium ``` 接着下载对应版本的[ChromeDriver](https://sites.google.com/a/chromium.org/chromedriver/downloads),并将其路径加入系统环境变量中。编写如下代码来启动浏览器实例并访问目标网站: ```python from selenium import webdriver import time driver_path = 'path/to/your/chromedriver' # 替换成实际chromedriver位置 browser = webdriver.Chrome(executable_path=driver_path) url = "http://example.com/login" browser.get(url) time.sleep(3) # 等待页面加载完毕 username_input = browser.find_element_by_name('username') password_input = browser.find_element_by_name('password') username_input.send_keys('your_username') password_input.send_keys('your_password') login_button = browser.find_element_by_css_selector('.btn-login') login_button.click() # 进入打卡界面后继续操作... check_in_link = browser.find_element_by_partial_link_text('Check In') check_in_link.click() ``` 此段代码展示了如何定位表单字段输入用户名密码,并点击按钮提交表单以完成登录过程[^4]。 #### 方法二:利用API接口进行远程调用打卡 如果公司提供了RESTful API用于员工考勤管理,则可以直接向指定URL发送HTTP请求来进行打卡活动而无需打开图形化界面。 ```python import requests api_url = 'https://company-api.example/checkin' headers = {'Authorization': 'Bearer YOUR_ACCESS_TOKEN'} data = {"employee_id": "EMPLOYEE_ID"} response = requests.post(api_url, headers=headers, json=data) if response.status_code == 200: print("打卡成功") else: print(f"失败: {response.text}") ``` 这种方法更加高效简洁,在服务器端运行时不会占用过多资源[^1]。 #### 方法三:微信小程序或公众号内的自动打卡 对于那些依赖于微信平台的企业应用来说,可以通过分析其网络通信协议抓包获取必要的参数构造POST请求体从而达到相同的效果;也可以借助第三方框架如itchat等控制手机上已有的会话窗口发送消息触发特定事件。 ```python import itchat import schedule import time def weixin_checkin(): itchat.auto_login(hotReload=True) users = itchat.search_friends(name='企业号名称')[0]['UserName'] itchat.send_msg('@text@上班啦', toUserName=users) schedule.every().day.at("09:00").do.weixin_checkin) while True: schedule.run_pending() time.sleep(1) ``` 上述例子说明了怎样定时每天早上九点钟给某个联系人发送一条包含特殊标记的消息作为打卡信号[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值