零基础学 Python(2023 版)
尹会生
太乙人工智能技术合伙人 & 项目总监
60050 人已学习
新⼈⾸单¥68
课程目录
已完结/共 124 讲
结束语 & 结课测试 (2讲)
零基础学 Python(2023 版)
登录|注册
留言
11
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 83|关系型数据库:怎样使用关系型数据库?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程介绍:这次我们都做了哪些升级?
内容综述:明确学习目的
01|如何配置 Python 开发环境?
02 | 常用 IDE:如何提高开发效率?
03 | 如何站在官方文档的肩膀上自己“造轮子”?
04 | 怎样运行你的第一行代码?
05 | 怎样使用 Gitee 管理你的代码?
06 | 学习编程有问题?去这里找答案!
07|跨越门槛:Python 开发环境总结及实现原理
08 | 修炼基本功:浅析输入输出
09 | 变量:如何让计算机临时存储数据?
10|字符串(上):Python 是如何处理单词的?
11|字符串(下):Python 是如何处理单词的?
12|存储数字应该采用哪种数据类型?
13|何时使用数,何时使用字符串?
14|注释:如何写程序的说明书?
15|小试牛刀:如何制作简单计算器?
16|变量命名规范:如何编写优雅的程序?
17|告别新手村:Python 编程基础知识
18|内置数据类型包括哪几种?
19|列表如何处理同类数据?
20|常见常新:列表的常见操作
21|元组:如何处理一次性数据?
22|常见常新:集合的常见操作
23|字典:如何处理映射类型的数据?
24|常见常新:字典的常见操作(上)
25|常见常新:字典的常见操作(下)
26|小试牛刀:如何利用类型转换实现手机通讯录?(上)
27|小试牛刀:如何利用类型转换实现手机通讯录?(下)
28|常见的内置数据类型都何时使用?
29|避坑指南:内置数据类型的常见错误
30|内置数据类型参考:如何使用官方文档与帮助?
31|再回首:“内置数据类型”单元小结
32|if 语句:数据流程出现分支时,怎样编写程序?
33|match 语句:如何通过 match 关键字来处理程序的分支逻辑?
34|while 循环:需要多次重复执行某段程序时,怎么做?
35|for 循环:如何遍历一个对象里的所有元素?
36|语句嵌套:如何处理多重循环的问题?
37|小试牛刀:如何设计一个飞机大战的程序?
38|避坑指南:判断和循环中的常见错误
39|再回首:“判断循环”单元小结
40|输入:如何接收用户通过键盘输入的数据?
41|格式化输出:如何将执行结果通过屏幕输出?
42|F-strings:如何通过定义好的格式进行输出?
43 | 常见常新:文件的打开
44|文件编码:如何解决不同操作系统的文件乱码问题?
45|常见常新:文件的读写
46|常见常新:文件的关闭
47|小试牛刀:如何使用 Python 合并多个文件?
48|再回首:“输入输出与文件操作”单元小结
49|函数的定义:如何优雅地反复引用同一段代码?
50|函数的参数:怎样实现函数与外部数据通信?
51|函数的参数:当函数操作对象不固定时怎么处理?
52|函数的返回值:如何得到函数的执行结果?
53|小试牛刀:如何利用函数实现电商购物车功能?
54|避坑指南:列表作为参数传递出错了怎么办?
55|高阶函数:函数对象与函数调用的用法区别
56|装饰器:函数嵌套的定义与调用的区别
57|再回首:“函数”单元小结
58|编程思想不同会导致怎样的代码差异?
59|类与实例:如何使用面向对象的思想编写程序?
60|类的继承:如何解决代码重用的问题?
61|类的装饰器:如何改变类方法的功能?
62|小试牛刀:如何开发自动咖啡机?
63|避坑指南:类的常见错误
64|init 方法:如何为对象传递参数?
65|再回首:“类”单元小结
66 | 模块的导入:如何使用其他人编写好的代码功能?
67 | 标准库:Python 默认提供的便捷功能有哪些?
68 | 自定义模块:如何编写一个完整功能?
69 | 第三方模块的使用:如何使用其他人编写的代码?
70 | 小试牛刀:如何使用 Python 为函数求导?
71|再回首:“模块与标准库”单元小结
72|初识异常:异常的产生与分类
73|异常捕获:出现异常时,如何利用程序进行处理?
74|自定义异常捕获:如何定义业务异常?
75|避坑指南:编写捕获异常程序时经常出现的问题
76|再回首:“异常处理”单元小结
77|扩展数据类型:怎样使用更复杂的数据类型?
78|魔术方法:怎样通过类构造自己需要的数据类型?
79|怎样将 Python 和 C++ 结合起来混合编程?
80|怎样将已有算法改造成符合项目的特定算法?
81|设计模式:怎样合理组合多个函数和类?
82|Redis 数据库:怎样使用 NoSQL 数据库?
83|关系型数据库:怎样使用关系型数据库?
84|计算资源充足时,如何通过并行设计提高效率?
85|多进程间如何通信?
86|再回首:“高级数据类型与算法”单元小结
87|理论盘点:数据分析的流程及对应的 Python 库
88|理论盘点:数据采集的方法与 HTTP 协议
89|理论盘点:任务的并行执行原理
90|理论盘点:非规范化数据处理的基础与正则表达式
91|如何获取网页上的数据并存储到文件?
92|小试牛刀:如何将数据进行图形化展示?
93|再回首:“数据分析”单元小结
94|理论盘点:文件类型与对应的 Python 函数库
95|如何批量读取 Excel 文件?
96|如何实现数据的批量格式转换?
97|如何扩展数据类型?
98|再回首:“办公自动化”单元小结
99|理论盘点:Web 客户端与服务端
100|理论盘点:MVC 模型是什么?
101|如何使用Django搭建简单的Web服务器?
102|如何使用Django-admin实现文章上传?
103|如何使用Django实现文章发布?
104|再回首:“Web开发”单元小结
105|理论盘点:人脸识别的一般步骤
106|理论盘点:人脸识别常用的 Python 库有哪些?
107|怎样通过 OpenCV 采集视频信号?
108|如何训练人脸模型?
109|怎样设计人脸识别系统?
110|再回首:“计算机视觉”单元小结
111|聚焦异同:物联网与互联网有啥不一样?
112|理论盘点:基础但不简单的 TCP 协议
113|理论盘点:物模型与模组
114|如何为 ESP32 安装 MicroPython?
115|怎样通过 MQTT 协议构建消息队列?
116|小试牛刀:在 OLED 屏幕和手机远程同时显示室内温度
117|再回首:“物联网”单元小结
118|结束语:人生苦短,我用Pyhon
结课测试|来赴一场满分之约吧!
直播加餐|与AI共同编程,用ChatGPT学Python
直播加餐|用OpenAI API理解Python数据类型
直播加餐|掌握Gradio框架:为 AI Agent 程序定制界面
本节摘要

课后习题
请尝试通过 Python 读取当前执行程序的电脑的 IP 地址,并将 IP 地址存储到 MySQL 数据库中。

课程代码、课件及其他相关资料地址
https://gitee.com/wilsonyin/zero-basics-python

登录 后留言

全部留言(11)

  • 最新
  • 精选
Guan YD
按照自己的想法写了一个class 但是在类属性的使用上感觉很别扭,不知道这么写是不是合适 import pymysql import socket class DB: tableName = "py_test.ip_record" conn = None cursors = None def __init__(self): DB.conn = pymysql.connect( host="127.0.0.1", user="root", password="123456", database="py_test", cursorclass=pymysql.cursors.DictCursor ) DB.cursors = DB.conn.cursor() def __del__(self): DB.conn.close() def get_by_ip(self, ip): sql = f"select id,ip_addr from {DB.tableName} where ip_addr = '{ip}'" DB.cursors.execute(sql) result = DB.cursors.fetchall() return result def add_info(self, ip): sql = f"insert into {DB.tableName} set ip_addr = '{ip}'" DB.cursors.execute(sql) try: DB.conn.commit() return "add success" except: DB.conn.rollback() return "add error" # 获取本机ip def get_local_ip(): hostname = socket.gethostname() ip = socket.gethostbyname(hostname) return ip local_ip = get_local_ip() db = DB() add_res = db.add_info(local_ip) print(add_res) res = db.get_by_ip(local_ip) print(res)

作者回复: 根据你的留言,提几个小建议: 1使用实例属性而非类属性:在你的代码中,数据库连接和游标作为类属性,意味着所有DB类的实例都将共享同一个数据库连接和游标。这可能导致在多线程环境中的问题。建议将它们定义为实例属性。 2 异常处理:当执行数据库操作时,最好捕获特定异常以提供更详细的错误信息。

2024-01-05
Matthew
CREATE TABLE `ip_record` ( `id` int(11) NOT NULL AUTO_INCREMENT, `ip_addr` varchar(255) COLLATE utf8_bin NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=1 ;
2023-01-16
1
Matthew
import socket import pymysql # 创建 socket,获取 client_ip with socket.socket(socket.AF_INET, socket.SOCK_DGRAM) as s: s.connect(("8.8.8.8", 80)) client_ip = s.getsockname()[0] print(client_ip) # 连接数据库 connection = pymysql.connect(host='localhost', user='root', password='admin123', database='db', cursorclass=pymysql.cursors.DictCursor) with connection: # 插入纪录 with connection.cursor() as cursor: sql = "INSERT INTO ip_record (ip_addr) VALUES (%s)" try: cursor.execute(sql, str(client_ip)) connection.commit() print("Insert success!") except: connection.rollback() print("Insert fail!") # 读取纪录 with connection.cursor() as cursor: sql = "SELECT id, ip_addr FROM ip_record" cursor.execute(sql) # result = cursor.fetchone() result = cursor.fetchall() print(result) # 删除记录 with connection.cursor() as cursor: sql = "DELETE FROM ip_record WHERE ip_addr = %s" try: cursor.execute(sql, str(client_ip)) connection.commit() print("Delete success!") except: connection.rollback() print("Delete fail!") # 读取纪录 with connection.cursor() as cursor: sql = "SELECT id, ip_addr FROM ip_record" cursor.execute(sql) # result = cursor.fetchone() result = cursor.fetchall() print(result)
2023-01-16
1
Geek_631607
import socket import pymysql def get_ip_address(): hostname = socket.gethostname() ip_address = socket.gethostbyname(hostname) return ip_address def store_ip_address(ip_address): db = pymysql.connect(host='localhost', user='root', password='admin', database='kkb', cursorclass=pymysql.cursors.DictCursor) with db: with db.cursor() as cu: cu.execute("CREATE TABLE IF NOT EXISTS ip_addresss(ip varchar(255))") cu.execute(f"INSERT INTO ip_addresss VALUES ('{ip_address}')") db.commit() ip_address = get_ip_address() store_ip_address(ip_address)
2023-12-08
Geek_631607
在 Python 中,你可以使用 `socket` 库来获取当前执行程序的电脑的 IP 地址,然后使用 `pymysql` 库将 IP 地址存储到 MySQL 数据库中。以下是一个示例: ```python import socket import pymysql # 获取本机 IP 地址 def get_ip_address(): hostname = socket.gethostname() ip_address = socket.gethostbyname(hostname) return ip_address # 将 IP 地址存储到 MySQL 数据库中 def store_ip_address(ip_address): # 连接到数据库(请替换为你的数据库信息) db = pymysql.connect("localhost", "username", "password", "database") cursor = db.cursor() # 创建表 cursor.execute("CREATE TABLE IF NOT EXISTS ip_addresses (ip VARCHAR(255))") # 插入 IP 地址 cursor.execute(f"INSERT INTO ip_addresses VALUES ('{ip_address}')") db.commit() db.close() ip_address = get_ip_address() store_ip_address(ip_address) ``` 在这个代码中,`get_ip_address` 函数用于获取本机的 IP 地址,`store_ip_address` 函数用于将 IP 地址存储到 MySQL 数据库中。你需要将数据库连接信息(如主机名、用户名、密码和数据库名)替换为你自己的信息。 请注意,这只是一个基本的示例,你可能需要根据实际情况调整代码,例如处理可能出现的异常,或者添加更多的数据库操作。 .
2023-12-08
William
# pip3 install PyMqSQL 安装库 import pymysql # 连接 connect = pymysql.connect(host='localhost', user='root', passwd='ac', db='db', cursorclass=pymysql.cursors.DictCursor) with connect: # 查询 with connect.cursor() as cursor: sql = "select * from users" # 执行语句 cursor.execute(sql) result = cursor.fetchall() print(result) # 新增 # with connect.cursor() as cursor: # sql = "insert into users (email, password) values (%s, %s)" # cursor.execute(sql, ('lyy@qq.com', 'lyypw')) # connect.commit() # 修改 with connect.cursor() as cursor: sql = "update users set email = %s where id =%s" cursor.execute(sql, ["lyy22@qq.com", 3]) connect.commit() # 查询 with connect.cursor() as cursor: sql = "select * from users" # 执行语句 cursor.execute(sql) result = cursor.fetchall() print(result)
2023-11-12
MarkG
课后习题: 先获取ip地址,然后保存起来 写入sql的把ip地址写进入 获取ip,保存到ip_address中 import socket hostname = socket.gethostname() ip_address = socket.gethostbyname(hostname) # 写入sql with connection: with connection.cursor() as cursor: # 建立一条记录 sql = "INSERT INTO `users` (`email`, `password`, `ip`) VALUES (%s, %s, %s)" cursor.execute(sql, ('bianlin@alibaba-inc.com', 'bianlin', ip_address)) # connection 不能自动提交数据,必须手动提交 connection.commit() 读取: with connection: with connection.cursor() as cursor: # 读取记录 sql = "SELECT `id`, `password`, `ip` FROM `users` WHERE `email`=%s" cursor.execute(sql, ('bianlin@alibaba-inc.com',)) result = cursor.fetchone() print(result)
2023-10-23
Geek_Mike
import pymysql import socket ip_adress = socket.gethostbyname(socket.gethostname()) conn = pymysql.connect(host='localhost', user='root', password='123123123', database='db') # print(db) with conn: with conn.cursor() as cursor: sql = 'INSERT INTO info (ip_address) VALUES (%s)' cursor.execute(sql, (ip_adress)) conn.commit() with conn.cursor() as cursor: sql = 'SELECT ip_address FROM info' cursor.execute(sql) result = cursor.fetchone() print(result) conn.commit()
2023-08-26
繁星不灭
一.习题练习(Linux版) 1.搭建数据库,创建表 #编译安装mysql数据库,依然使用db数据库,创建表 mysql> create table hostname_ip ( -> id int(11) not null auto_increment, -> hostname varchar(255) not null, -> ip varchar(255) not null, -> primary key (id) -> ); 2.linux环境 python服务器IP:10.100.36.29 mysql服务器IP:10.100.36.25 2.编写.py文件 import pymysql.cursors import socket #获取本地主机名和IP hostname=socket.gethostname() ip=socket.gethostbyname(hostname) #连接数据库 connection=pymysql.connect(host="10.100.36.25",user="root",password="rootroot",database="db",port=33600,cursorclass=pymysql.cursors.DictCursor) with connection: # 插入数据 with connection.cursor() as cursor: sql="INSERT INTO `hostname_ip` (`hostname`,`ip`) values (%s,%s)" cursor.execute(sql,(hostname,ip)) connection.commit() #查询结果 with connection.cursor() as cursor: sql = "SELECT * FROM `hostname_ip`" cursor.execute(sql) result = cursor.fetchone() print(result) 3.执行结果 {'id': 1, 'hostname': 'python01', 'ip': '10.100.36.29'}
2023-02-07
Cy23
import pymysql import socket ip_address = socket.gethostbyname(socket.gethostname()) print(f"IP_Address: {ip_address}") conn = pymysql.connect( host='localhost', user='root', password='', database='pydb', cursorclass=pymysql.cursors.DictCursor) with conn: with conn.cursor() as cursor: sql = "insert into `user_ips` (`ip`) values (%s)" cursor.execute(sql, (ip_address)) conn.commit() with conn.cursor() as cursor: sql = "select * from `user_ips`" cursor.execute(sql) result = cursor.fetchall() print(result)
2023-01-28
收起评论