课程试听
正在播放
1-1 开启Python学习之旅
  • 01-Python的由来 免费试学
  • 02-Python的特点 免费试学
  • 03-Python的应用领域 免费试学
  • 04-Python版本的基本介绍 免费试学
  • 05-不同版本解释器的详细介绍 免费试学
  • 06-Linux系统安装Python 免费试学
  • 07-Windows下Python的下载 免费试学
  • 08-Python2的安装 免费试学
  • 09-Python3的安装 免费试学
  • 10-Mac电脑使用Python介绍 免费试学
  • 11-IDLE的介绍 免费试学
  • 12-IDLE的使用 免费试学
  • 13-IPython的介绍和安装 免费试学
  • 14-运行Python代码的两种方式 免费试学
  • 15-Python常见的集成开发环境介绍 免费试学
  • 16-PyCharm的下载和安装 免费试学
  • 17-PyCharm创建和运行Python程序 免费试学
  • 18-解释型语言和编译型语言介绍 免费试学
  • 19-Python文档的查看方式 免费试学
1-2 Python快速入门
  • 01-Python快速入门-学习目标
  • 02-输入和输出
  • 03-注释
  • 04-文档字符串
  • 05-修改PyCharm字体大小
  • 06-代码风格
  • 07-变量
  • 08-标识符强制遵守的规则
  • 09-标识符命名建议
  • 10-关键字
  • 11-常见数据类型
  • 12-if语句
  • 13-while循环
  • 14-for循环
  • 15-可迭代对象
  • 16-文件、异常、函数、面向对象、模块
1-3 数值类型
  • 01-数值类型介绍
  • 02-整型的介绍
  • 03-四种定义整型的方式
  • 04-浮点型
  • 05-浮点型的取值范围
  • 06-浮点型的存储
  • 07-复数
  • 08-布尔类型
  • 09-算数运算符
  • 10-复合赋值运算符
  • 11-比较运算符
  • 12-or的使用
  • 13-and的使用
  • 14-not的使用
  • 15-类型转换
  • 16-对象和引用
  • 17-进制转换
  • 18-位运算的介绍
  • 19-整型存储方式
  • 20-按位取反
  • 21-按位左移和右移运算
  • 22-与运算
  • 23-或运算
  • 24-异或运算
  • 25-运算符优先级
1-4 字符串
  • 01-字符串的定义方式
  • 02-使用str创建字符串
  • 03-字符串的索引
  • 04-字符串不可修改
  • 05-切片的基本使用
  • 06-切片-省略起始或结束位置
  • 07-切片-步长
  • 08-特殊字符处理
  • 09-格式化输出
  • 10-格式化操作的辅助指令
  • 11-字符串的输入
  • 12-字符串模板
  • 13-字符串内建函数
  • 14-字符串常见方法
  • 15-字符串操作符
1-5 序列
  • 01-序列的介绍
  • 02-索引的使用
  • 03-切片的基本使用
  • 04-切片的高级使用
  • 05-切片的步长使用
  • 06-通用序列操作
  • 07-列表的介绍
  • 08-列表的创建方式
  • 09-列表操作符
  • 10-列表的相关函数
  • 11-列表的相关方法
  • 12-sorted的使用
  • 13-定义元组
  • 14-元组的通用操作
  • 15-元组元素的“修改”
  • 16-元组是无符号对象的默认类型
  • 17-不同序列的互相转换
  • 18-range的基本使用
  • 19-range的使用注意点
  • 20-range和列表、元组的比较
1-6 流程控制
  • 01-流程控制介绍
  • 02-if语句的使用
  • 03-debug的使用
  • 04-if-else的使用
  • 05-条件表达式
  • 06-多重条件表达式
  • 07-if-elif语句的使用
  • 08-if-elif-else的使用
  • 09-if嵌套
  • 10-判断表达式
  • 11-while循环的基本执行过程
  • 12-while循环计算阶乘
  • 13-循环嵌套的执行过程
  • 14-循环嵌套-打印三角形
  • 15-死循环
  • 16-for循环的执行过程
  • 17-for循环遍历列表和range
  • 18-for循环使用技巧01
  • 19-for循环使用技巧02
  • 20-迭代器和iter函数
  • 21-列表推导式
  • 22-循环中break语句的使用
  • 23-循环中continue语句的使用
  • 24-pass的使用
  • 25-循环的else使用
  • 01-字典的介绍
  • 02-字典的特点
  • 03-字典的增删改查
  • 04-字典推导式
  • 05-字典操作的补充
  • 06-字典的常用函数
  • 07-字典的clear和get方法
  • 08-字典的copy方法
  • 09-items方法的使用
  • 10-items方法的补充
  • 11-keys方法的使用
  • 12-values方法的使用
  • 13-集合的定义方式和特点
  • 14-集合的数据操作
  • 15-集合数据操作增强
  • 16-标准类型的操作符
  • 17-集合类型的操作符
  • 18-可变集合类型的操作符
  • 19-集合内建方法
1-7 字典和集合
  • 01-字典的介绍
  • 02-字典的特点
  • 03-字典的增删改查
  • 04-字典推导式
  • 05-字典操作的补充
  • 06-字典的常用函数
  • 07-字典的clear和get方法
  • 08-字典的copy方法
  • 09-items方法的使用
  • 10-items方法的补充
  • 11-keys方法的使用
  • 12-values方法的使用
  • 13-集合的定义方式和特点
  • 14-集合的数据操作
  • 15-集合数据操作增强
  • 16-标准类型的操作符
  • 17-集合类型的操作符
  • 18-可变集合类型的操作符
  • 19-集合内建方法
1-8 函数和函数式编程
  • 01-函数的介绍
  • 02-基本的函数定义格式
  • 03-函数的执行过程和函数的debug调试
  • 04-函数文档
  • 05-函数的参数
  • 06-函数的return返回值
  • 07-return的使用强化
  • 08-在一个函数里返回多个值
  • 09-关键字参数
  • 10-参数默认值
  • 11-关键字参数使用注意点
  • 12-不定长参数
  • 13-不定长参数-字典版
  • 14-解包的使用
  • 15-混合参数传值
  • 16-函数嵌套的执行过程
  • 17-递归函数
  • 18-匿名函数的定义和调用
  • 19-函数作为参数传递
  • 20-map的使用
  • 21-filter的使用
  • 22-reduce的使用
  • 23-局部变量
  • 24-全局变量
  • 25-在函数里修改全局变量
  • 26-闭包函数的定义方式
  • 27-闭包函数的使用
  • 28-LEGB原则
  • 29-nonlocal关键字
  • 30-装饰器的定义和使用
  • 31-多个装饰器
  • 32-装饰有参数的函数
  • 33-装饰任意个数参数的函数
  • 34-被装饰函数有返回值的处理方式
  • 35-通用装饰器
  • 36-带有参数的装饰器
  • 37-装饰器的应用场景
  • 38-生成器介绍
  • 39-生成器的执行过程
  • 40-生成器使用注意点
  • 41-使用生成器获取斐波那契数列
  • 42-生成器的send方法
  • 43-生成器的close方法
  • 44-生成器处理协程效果
  • 45-生成器和迭代器的区别
  • 46-Python内置函数
  • 47-数学运算相关函数
  • 48-类型转换相关函数
  • 49-序列相关的函数
  • 50-类、对象、属性相关函数
  • 51-编译、执行相关函数
  • 52-其他函数
1-9 文件
  • 01-文件的介绍
  • 02-打开文件介绍
  • 03-文件路径的说明
  • 04-打开文件的模式说明
  • 05-文件的关闭
  • 06-文件的写入
  • 07-文件的缓冲设置
  • 08-文件的read操作
  • 09-文件读写的注意点
  • 10-文件的4种读取方式
  • 11-文件的读写位置跳转
  • 12-文件的其他属性和方法
  • 13-文件的遍历
  • 14-文件备份
  • 15-文件的重命名和删除
  • 16-文件夹操作(OS模块扩展)
  • 17-标准文件
  • 18-用户登陆案例介绍
  • 19-用户登陆-任务分解
  • 20-用户登陆-搭建程序框架
  • 21-用户登陆-程序入口
  • 22-用户登陆-初始化
  • 23-用户选择身份类型
  • 24-完成管理员账号的验证
  • 25-用户登陆-完成用户注册
  • 26-用户登陆-普通用户登陆
1-10 面向对象(上)
  • 01-面向对象介绍
  • 02-面向对象和面向过程的区别
  • 03-类和对象的概念
  • 04-定义类
  • 05-创建对象
  • 06-对象属性
  • 07-在方法里添加对象属性-self的使用
  • 08-删除对象属性
  • 09-类属性
  • 10-类对象的介绍
  • 11-构造方法
  • 12-析构方法
  • 13-对象方法
  • 14-类方法和静态方法
  • 15-属性的保护
  • 16-私有属性
  • 17-私有属性作用原理
  • 18-私有方法
  • 19-使用property保护属性
1-11 面向对象(下)
  • 01-封装
  • 02-继承的介绍
  • 03-单继承
  • 04-继承时的私有属性
  • 05-isinstance和issubclass
  • 06-新式类和经典类
  • 07-多继承
  • 08-多继承中父类有同名方法及处理办法
  • 09-重写
  • 10-重写-调用父类方法
  • 11-多态
  • 12-运算符重载介绍
  • 13-四则运算的重载
  • 14-索引和分片重载
  • 15-定制对象的字符串描述
  • 16-__new__方法介绍
  • 17-__new__接收参数
  • 18-设计模式
  • 19-单例模式
  • 20-单例模式-初始化参数
  • 21-耦合与解耦的介绍
  • 22-工厂模式的需求分析
  • 23-工厂模式的代码
1-12 错误和异常
  • 01-异常的介绍
  • 02-常见异常
  • 03-捕捉异常
  • 04-捕捉指定异常
  • 05-一次性捕捉多个异常
  • 06-捕捉所有异常
  • 07-异常别名-获取异常信息
  • 08-异常的else和finally语句
  • 09-raise的使用
  • 10-异常的传递
  • 11-断言-assert语句
  • 12-自定义异常
  • 13-自定义异常的完善
  • 14-with的基本使用
  • 15-with语句-异常的处理
  • 16-上下文管理器
1-13 模块
  • 01-模块介绍
  • 02-sys模块
  • 03-os模块的使用
  • 04-path模块的使用
  • 05-time模块的使用
  • 06-导入模块的方式
  • 07-自定义模块
  • 08-搜索路径
  • 09-__all__属性的介绍
  • 10-__name__属性的使用
  • 11-模块导入特性
  • 12-模块缓存
  • 13-包的介绍
  • 14-导入包
  • 15-包下的__init__文件作用
  • 16-打包模块
  • 17-模块的安装
1-14 内存管理
  • 01-内存管理介绍
  • 02-内存管理的常用机制
  • 03-引用计数机制概述
  • 04-增加对象的引用
  • 05-减少对象的引用
  • 06-释放对象占用的内存
  • 07-容器对象引用对象
  • 08-对象之间的循环引用
  • 09-弱引用处理循环引用
  • 10-垃圾回收机制概述
  • 11-垃圾回收-标记清除技术
  • 12-垃圾回收-分代回收技术
  • 13-gc模块
  • 14-垃圾回收场景
  • 15-内存池-小整数对象池
  • 16-内存池-字符串的intern机制
1-15 正则表达式
  • 01-知识引入
  • 02-起源与发展
  • 03-正则表达式的定义
  • 04-字符分类
  • 05-点字符
  • 06-行头行尾
  • 07-单词边界
  • 08-多选结构
  • 09-重复匹配
  • 10-字符组
  • 11-转义字符
  • 12-子组
  • 13-re模块
  • 14-预编译
  • 15-匹配与搜索
  • 16-匹配对象
  • 17-全文匹配
  • 18-检索替换
  • 19-文本分割
  • 20-贪婪模式
  • 21-预定义字符集
1-16 图形用户界面编程
  • 01-Tkinter概述
  • 02-第一个Tkinter程序
  • 03-常用组件-标签、按钮、输入框
  • 04-组件属性设置方式
  • 05-标准组件属性
  • 06-按钮(Button)
  • 07-标签组件(Label)
  • 08-文本框(Entry)
  • 09-多行文本框(Text)
  • 10-单选按钮(Radiobutton)
  • 11-复选框(Checkbutton)
  • 12-列表框(Listbox)
  • 13-菜单-主菜单
  • 14-菜单-下拉菜单
  • 15-菜单-弹出菜单
  • 16-对话框-消息对话框
  • 17-对话框-文件对话框
  • 18-对话框-颜色选择对话框
  • 19-画布绘制
  • 20-绘制的option参数
  • 21-绘制五角星案例-计算方式思路
  • 22-绘制五角星案例-计算点的位置
  • 23-绘制五角星案例-将点的位置套入代码中
  • 24-pack布局管理器
  • 25-grid布局管理器
  • 26-place布局管理器
  • 27-简单的事件绑定方式
  • 28-鼠标事件处理
  • 29-键盘事件和组件尺寸变化的处理
  • 30-其他事件绑定方式
  • 31-其他GUI
1-17 多任务编程
  • 01-引入
  • 02-多任务的实现原理
  • 03-进程介绍
  • 04-通过fork函数创建进程
  • 05-通过Process类实例创建进程
  • 06-使用join方法同步进程
  • 07-通过Process子类创建子进程
  • 08-进程池批量创建进程
  • 09-通过subprocess模块创建进程
  • 10-全局变量在多个进程中不共享
  • 11-使用Queue队列实现进程间通信
  • 12-线程介绍
  • 13-使用Thread类实现多线程
  • 14-使用Thread子类实现多线程
  • 15-调用join()方法阻塞线程
  • 16-线程共享全局变量
  • 17-访问全局变量出现数据不同步的问题
  • 18-通过互斥锁(Lock)解决数据不同步的问题
  • 19-持有多个锁造成死锁的问题
  • 20-可重入锁(RLock)的使用
  • 21-通过条件变量(Condition)实现线程同步
  • 22-通过队列(Queue)实现线程同步
  • 23-使用事件(Event)实现线程通信
  • 24-后台线程
  • 25-协程
1-18 网络编程
  • 01-知识引入
  • 02-计算机网络概述
  • 03-协议的概念
  • 04-常用协议
  • 05-IP地址
  • 06-网络掩码
  • 07-端口
  • 08-数据传输流程
  • 09-网络编程概述
  • 10-socket简介(套接字)
  • 11-创建套接字
  • 12-udp发送数据
  • 13-udp接收数据
  • 14-udp端口绑定
  • 15-tcp客户端
  • 16-tcp服务端
  • 17-tcp服务端-判断客户端下线
  • 18-tcp服务端-多人服务
  • 19-tcp的注意点
1-19 数据库
  • 01-数据库简介
  • 02-下载MySQL
  • 03-安装MySQL
  • 04-卸载MySQL
  • 05-使用MySQL Workbench
  • 06-创建和删除数据库
  • 07-创建和删除表
  • 08-数据的添加
  • 09-数据的更新
  • 10-数据的删除
  • 11-比较运算符查询
  • 12-逻辑运算符查询
  • 13-模糊查询
  • 14-连续范围查询
  • 15-不连续范围查询(集合查询)
  • 16-空值查询
  • 17-查询不重复的记录
  • 18-聚合查询
  • 19-分组查询
  • 20-排序查询
  • 21-限制记录数量
  • 22-完整的SQL语句
  • 23-多表查询
  • 24-字符串函数
  • 25-数学函数
  • 26-日期时间函数
  • 27-类型转换函数
  • 28-事务
  • 29-Python与MySQL交互
1-20 Web编程
  • 01-Web服务器概述
  • 02-第一个Web服务器
  • 03-统一资源定位符
  • 04-HTTP协议
  • 05-HTTP请求方法和状态码
  • 06-HTML简介
  • 07-CSS简介
  • 08-JavaScript简介
  • 09-静态服务器
  • 10-WSGI规范
  • 11-WSGI服务器
  • 12-Web服务器
  • 13-基于框架的服务器
1-21 案例_井字棋
  • 01-井字棋游戏介绍
  • 02-学习目标
  • 03-游戏规则详细说明
  • 04-游戏的代码流程分析
  • 05-类的设计
  • 06-明确设计目标
  • 07-创建项目-新建文件
  • 08-棋盘模块的功能说明
  • 09-根据落子打印棋盘的方式分析
  • 10-可落子的位置索引列表
  • 11-初始化棋盘
  • 12-打印棋盘
  • 13-打印落子情况
  • 14-完成棋盘的落子功能
  • 15-平局判断
  • 16-获胜的逻辑判断
  • 17-重置棋盘
  • 18-棋盘开发回顾
  • 19-初始化玩家类
  • 20-用户落子的需求解析
  • 21-玩家落子
  • 22-阶段总结
  • 23-初始化游戏环境
  • 24-确定先手玩家的方法说明
  • 25-确认玩家先后手的代码实现
  • 26-游戏流程回顾
  • 27-一局游戏的注释书写
  • 28-玩家对战
  • 29-循环对局开发
  • 30-阶段总结
  • 31-计算机落子的技术分析
  • 32-随机选择可落子位置的方法说明
  • 33-电脑玩家随机落子
  • 34-阶段总结
  • 35-落子策略介绍
  • 36-必胜和必救的位置判断逻辑
  • 37-模拟落子位置的胜负判断
  • 38-修改棋盘的is_win方法代码
  • 39-必胜和必救位置的代码解析
  • 40-必胜和必救位置落子的代码实现
  • 41-评估子力价值的方式
  • 42-使用集合获取优先落子的位置
  • 43-根据子力来落子的代码实现
1-22 案例_贪吃蛇
  • 01-游戏介绍
  • 02-课程内容介绍
  • 03-pygame安装和验证
  • 04-游戏规则的详细介绍
  • 05-类的设计
  • 06-新建项目并创建模块
  • 07-游戏框架内容介绍
  • 08-pygame的初始化和退出
  • 09-创建游戏窗口
  • 10-开启游戏循环
  • 11-游戏时钟
  • 12-pygame的颜色定义方式
  • 13-绘制窗口背景颜色
  • 14-绘制文本的方式
  • 15-创建字体对象的参数介绍
  • 16-创建文本标签类
  • 17-绘制文本内容到窗口里
  • 18-测试在窗口里绘制文本
  • 19-绘制文本的过程小结
  • 20-电脑里的坐标系
  • 21-把文字显示到窗口左下角-矩形的介绍
  • 22-使用矩形的相对位置来绘制文字
  • 23-元素定位小结
  • 24-循环的作用小结
  • 25-事件和监听介绍
  • 26-获取和判断事件类型
  • 27-空格键的监听
  • 28-游戏暂停信息的提示
  • 29-游戏结束信息的提示和游戏的重置
  • 30-事件监听小结
  • 31-绘制图形
  • 32-绘制食物的方式分析
  • 33-在固定位置绘制食物
  • 34-随机食物位置的算法
  • 35-随机生成食物位置
  • 36-食物的动画效果
  • 37-绘制食物小结
  • 38-定时器使用介绍
  • 39-定时更新食物位置
  • 40-蛇类的构成分析
  • 41-创建蛇类
  • 42-添加身体的逻辑
  • 43-添加蛇的身体
  • 44-绘制蛇的身体
  • 45-移动蛇的身体
  • 46-修改蛇的移动方向
  • 47-蛇吃食物的业务说明
  • 48-蛇吃食物
  • 49-蛇的死亡判断处理思路
  • 50-蛇的死亡处理
1-23 案例_飞机大战
  • 01-课程简介
  • 02-游戏启动时界面元素说明
  • 03-玩家飞机功能介绍
  • 04-敌人飞机介绍
  • 05-敌人飞机执行细节
  • 06-游戏道具和游戏结束的执行介绍
  • 07-搭建框架的需求说明
  • 08-项目准备
  • 09-Game类的属性和方法说明
  • 10-Game类的属性和方法细节说明
  • 11-游戏框架内容的介绍
  • 12-定义窗口大小变量
  • 13-初始化和重置Game类
  • 14-启动游戏
  • 15-处理退出事件
  • 16-切换游戏状态
  • 17-游戏框架的完善和阶段总结
  • 18-精灵和精灵组学习方式介绍
  • 19-加载并显示图片的步骤说明
  • 20-自己实现图像的加载和绘制
  • 21-精灵和精灵组使用说明
  • 22-派生精灵子类的代码说明
  • 23-自定义游戏精灵类
  • 24-使用精灵组绘制精灵内容
  • 25-阶段总结
  • 26-连续滚动背景的解决方案
  • 27-连续滚动背景的代码实现
  • 28-控制面板功能介绍
  • 29-面板类的属性和方法说明
  • 30-面板类的初始化
  • 31-状态按钮精灵的定义
  • 32-显示并定位状态按钮、炸弹精灵、生命精灵
  • 33-标签类的功能说明
  • 34-定义标签精灵类
  • 35-显示数字标签
  • 36-显示提示信息标签
  • 37-修改炸弹计数
  • 38-修改生命计数
  • 39-修改游戏得分的算法
  • 40-游戏得分更新
  • 41-最好成绩的文件读取需求说明
  • 42-保存最好成绩到文件
  • 43-从文件中加载最好成绩
  • 44-为什么只会保存最高得分
  • 45-游戏状态变化的说明
  • 46-精灵的绘制顺序演示
  • 47-处理提示信息显示和隐藏的思路
  • 48-显示提示信息的代码实现
  • 49-隐藏提示信息的处理
  • 50-为什么要重置面板数据的说明
  • 51-重置面板数据的代码实现
  • 52-飞机开发效果介绍
  • 53-飞机类的基本功能说明
  • 54-使用逐帧动画显示英雄飞机
  • 55-减少动画帧数的方式说明
  • 56-飞机的火焰动画完善
  • 57-飞机类的属性和方法说明
  • 58-优化飞机的属性
  • 59-飞机的重置和更新
  • 60-测试改进版的飞机
  • 61-敌人飞机类的功能描述
  • 62-定义敌人飞机类
  • 63-根据关卡不同创建不同数量飞机的方法说明
  • 64-根据关卡创建不同数量的飞机
  • 65-随机敌人飞机位置的算法
  • 66-随机敌人飞机位置的代码实现
  • 67-敌机飞行
  • 68-爆炸效果的bug修复
  • 69-英雄飞机的处理步骤说明
  • 70-飞机类功能说明
  • 71-定义英雄飞机类
  • 72-让控制面板显示飞机的炸弹数量
  • 73-移动英雄飞机需要新的监听机制
  • 74-get_pressed方法的基本使用
  • 75-飞机移动效果完善
  • 76-引爆所有敌机的需求说明
  • 77-引爆所有敌机代码实现
  • 78-碰撞检测的讲解过程说明
  • 79-sprite的碰撞检测方法
  • 80-实现高质量的碰撞检测
  • 81-英雄飞机被撞毁的注意点介绍
  • 82-玩家飞机被撞毁的处理
  • 83-正在爆炸的飞机不会影响英雄飞机
  • 84-自定义事件的需求说明
  • 85-英雄飞机被撞击后控制面板的更新
  • 86-英雄飞机爆炸后的无敌时间和位置重置
  • 87-子弹类的功能说明
  • 88-定义子弹类
  • 89-发射子弹的定时事件处理
  • 90-飞机发射子弹的代码实现
  • 91-子弹击中敌机的碰撞检测
  • 92-子弹击中敌机的代码实现
  • 93-游戏的重置完善
  • 94-弹药的处理方式说明
  • 95-定义道具类
  • 96-抛出道具
  • 97-英雄飞机捡取道具
  • 98-音乐功能的说明
  • 99-播放音乐的两种方式展示
  • 100-音乐类的功能说明
  • 101-创建音乐播放器类-背景音乐的播放和暂停处理
  • 102-音效功能的处理
  • 103-完成界面里的音效处理-游戏开发完成
  • 104-设置窗口标题补充
1-24 案例_多人聊天室
  • 01-项目效果展示
  • 02-项目功能的详细介绍
  • 03-服务器功能介绍
  • 04-通信协议介绍
  • 05-创建config模块
  • 06-处理服务器响应字符串的拼接(响应协议)
  • 07-封装服务器套接字
  • 08-创建服务器核心类与网络数据收发的回顾
  • 09-创建SocketWapper类
  • 10-获取多个客户端连接
  • 11-一个客户端多次收发数据
  • 12-多个客户端同时收发数据
  • 13-开启子线程的另一种方式-匿名函数
  • 14-服务器获取到数据之后的处理流程说明
  • 15-解析客户端的信息
  • 16-根据请求类型调用不同的方法响应
  • 17-根据请求类型调用不同的方法-完善
  • 18-登陆代码的说明
  • 19-用户登陆的逻辑处理
  • 20-准备数据库
  • 21-数据库类的初始化
  • 22-查询单个用户信息的逻辑分析
  • 23-从数据库查询一个用户信息的代码实现
  • 24-完成用户账号检查
  • 25-清理离线用户
  • 26-服务器转发消息给在线用户
  • 27-tkinter模块介绍
  • 28-创建登陆窗口类
  • 29-初始化登陆窗口属性
  • 30-创建控件的方法简介
  • 31-用户名和密码控件显示
  • 32-提供重置和登陆按钮
  • 33-重置和登陆按钮的点击响应处理
  • 34-获取和清空文本框内容
  • 35-关闭窗口的响应处理
  • 36-创建ClientSocket类
  • 37-创建协议类
  • 38-初始化登陆窗口
  • 39-发送登陆消息到服务器
  • 40-开启接收消息的线程
  • 41-解析消息内容
  • 42-提供响应方法的注册功能
  • 43-设置协议解析方法为静态方法
  • 44-登陆或失败的结果判断
  • 45-显示提示对话框
  • 46-初始化聊天窗口
  • 47-ScrolledText使用介绍
  • 48-添加控件到聊天窗口
  • 49-聊天界面发送按钮和输入框处理
  • 50-添加信息到聊天区
  • 51-聊天窗口添加关闭窗口的响应
  • 52-登陆成功后显示聊天窗口
  • 53-发送消息到服务器
  • 54-从服务器接收消息
  • 55-程序结束时的资源释放
1-25 大型购物网站—天天生鲜
  • 01-天天生鲜项目展示
  • 02-Django框架的介绍
  • 03-Django框架结构-mvc和mvt
  • 04-天天生鲜项目的创建
  • 05-创建应用和开启服务器
  • 06-数据库的配置
  • 07-数据表和字段的介绍
  • 08-定义模型类
  • 09-创建和执行迁移文件生成数据表
  • 10-插入商品分类的数据
  • 11-插入商品数据
  • 12-查询、更新、删除操作
  • 13-创建视图
  • 14-模板文件的配置和使用
  • 15-模板传值和配置静态文件的使用
  • 16-Cookie的介绍
  • 17-首页数据查询-分类和商品数据
  • 18-首页数据查询-购物车数据
  • 19-静态文件的添加
  • 20-首页模板
  • 21-首页开发总结
  • 22-商品详情页面-视图创建
  • 23-商品详情页面-模板添加和访问
  • 24-添加购物车-视图创建
  • 25-添加购物车-访问成功
  • 26-商品分类页面-创建视图获取数据
  • 27-商品分类页面-显示所有数据
  • 28-商品分类页面-分页
  • 29-商品分类页面-总结和快速定位bug
  • 30-购物车页面-创建视图获取数据
  • 31-购物车页面-创建模板和显示数据
  • 32-购物车删除商品功能
  • 33-csrf攻击和防护01
  • 34-csrf攻击和防护02
  • 35-提交订单页面-视图创建
  • 36-提交订单页面-模板创建访问和显示
  • 37-过滤器的使用
  • 38-提交订单-视图创建
  • 39-提交订单-视图功能完成
  • 40-订单提交成功-视图创建
  • 41-订单提交成功-演示结果
  • 42-总结_debug
  • 43-admin简单使用
  • 44-admin自定义界面
  • 45-中间件介绍
  • 46-自定义中间件