- 博客(63)
- 收藏
- 关注
原创 63、MySQL入门 MySQL 命令大全
数据库相关命令下面是与 MySQL 数据库操作相关的命令,包括创建、删除和修改数据库等操作:以下是与 MySQL 数据表相关的常用命令,包括创建、修改、删除表以及查看表的结构和数据等操作:
2025-01-10 10:25:08
1083
原创 62、MySQL入门 索引
以下是一个使用 ALTER TABLE 命令创建唯一索引的实例:假设我们有一个名为 employees 的表,包含 id 和 email 列,现在我们想在 email 列上创建一个唯一索引,以确保每个员工的电子邮件地址都是唯一的。以下是一个在创建表时创建唯一索引的实例:假设我们要创建一个名为 employees 的表,其中包含 id、name 和 email 列,我们希望 email 列的值是唯一的,因此我们要在创建表时定义唯一索引。在创建唯一索引之前,你可能需要确保表中的 email 列没有重复的值。
2025-01-10 10:10:38
923
原创 61、MySQL入门 MySQL 事务
一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。在 MySQL 中,事务是一组SQL语句的执行,它们被视为一个单独的工作单元。
2025-01-10 09:27:15
825
原创 60、MySQL入门 表格约束
声明这个字段是一个外键字段,这个字段中的数据是跟另一个表格中的 主键字段数据进行绑定的。foreign key(字段) references 表格名(字段)一个表格只能有一个主键,但是可以有多个外键。
2025-01-09 09:23:20
573
原创 57、MySQL入门 MySQL表操作
MySQL 支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。MySQL 中定义数据字段的类型对你数据库的优化是非常重要的。
2025-01-08 16:58:07
611
原创 55、MySQL入门 MySQL账户操作
打开"运行"对话框(Win + R),输入 services.msc,找到"MySQL"服务,右击选择"启动"。
2025-01-08 16:01:49
916
转载 53、Web 建站技术中,HTML、HTML5、XHTML、CSS、SQL、JavaScript、PHP、ASP.NET、Web Services 是什么?
比如我的主页,导航栏右边的头像和名字跟别人看到的不一样,就是因为这块地方有一个放图片的<img>标签和一个写名字的<span>标签,服务器脚本在查询本地的数据之后给我返回的页面里<img>的标签填了我头像的图片链接,<span>标签里填了我的名字,给别人的页面就填其他链接、其他名字,这样每个人看到的页面就不一样了。是不是觉得默认样式有点看瞎狗眼呢……知乎的主页给大家看到的 html 整体来说是差不多的,都有导航栏,左边是关注的动态,右边是广告和边栏,每一块的整体构造大同小异,只是一些地方内容有所区别。
2025-01-05 10:30:55
53
原创 52、Python入门 伪造请求头
对于需要处理JavaScript渲染的网站,可以使用`Selenium`或`Playwright`等工具来模拟真实浏览器行为。- `Accept`: 指定客户端能够接收的内容类型,如`text/html`、`application/json`等。运行上述代码后,`httpbin.org/headers`会返回请求头的信息,你可以看到自定义的头部已经被成功发送。`Selenium`可以模拟真实浏览器的行为,包括执行JavaScript,适用于需要处理动态内容的场景。
2024-12-26 11:23:46
839
原创 51、Python入门 基于异步加载的简单登录
2. 创建会话:在`main`协程中,使用`aiohttp.ClientSession()`创建一个会话对象,该对象可以在多个请求之间共享连接和配置。1. 定义登录函数:`login`函数使用`async def`声明为协程,并使用`aiohttp`进行HTTP POST请求。4. 并发执行任务:使用`await asyncio.gather(*tasks)`并发执行所有任务,并收集它们的结果。3. 创建任务:使用列表推导式创建多个`login`任务,模拟多个用户同时登录。# 创建多个登录任务。
2024-12-26 11:14:16
342
原创 50、Python入门 异步加载技术
在Python中,异步加载技术主要用于提高程序的执行效率,特别是在处理I/O密集型任务时。异步编程允许程序在等待某些操作(如网络请求、文件读写等)完成的同时,继续执行其他任务,从而避免阻塞整个程序的执行。协程(Coroutine)是异步编程的基础,它是一种用户态的轻量级线程,可以在单个线程内实现并发。在数据库操作频繁的应用中,使用异步数据库驱动(如`aiomysql`、`asyncpg`)可以提高性能。`aiohttp`是一个用于异步HTTP请求的库,基于`asyncio`实现。4. 异步编程的注意事项。
2024-12-26 11:06:41
432
原创 49、Python入门 Python与AJAX:构建高效Web交互体验
在现代Web开发中,Python作为后端语言以其简洁高效和丰富的库支持而广受欢迎,而AJAX(Asynchronous JavaScript and XML)技术则为前端与后端的交互带来了革命性的变化。随着技术的不断发展,我们可以期待更多的创新应用基于这种强大的组合而诞生,进一步推动Web应用向更加智能化、交互化的方向发展。- Django:是一个功能齐全的高级Web框架,它遵循“包含电池”(batteries - included)理念,提供了诸如用户认证、数据库管理、URL路由等众多功能。
2024-12-26 10:57:34
375
原创 48、Python入门 Redis数据库基础
这使得它能够灵活地应对各种不同的应用场景。- 在测试类(如`@SpringBootTest`标注的类)中注入`RedisTemplate`对象,然后可以操作字符串、哈希、列表、集合、有序集合等五种数据类型相关对象,如`ValueOperations`、`HashOperations`、`ListOperations`、`SetOperations`、`ZSetOperations`等。1. 有序的字符串列表,支持两端插入(`lpush`、`rpush`)和弹出元素(`lpop`、`rpop`)操作。
2024-12-25 11:31:54
422
原创 47、Python入门 MongoDB基础
提供强大的聚合功能,可通过管道(`aggregate`)执行复杂操作,如分组、排序、过滤等,例如`db.collection.aggregate([{ $group: { _id: "$age", count: { $sum: 1 } } },{ $sort: { count: -1 } }])`。- 在C盘创建`data`目录,在`data`目录里再创建`db`和`log`目录。- 支持多个操作符,如`$eq`(等于)、`$gt`(大于)、`$lt`(小于)等。
2024-12-25 11:19:29
281
原创 46、Python入门 案例:爬取大麦网信息
目标内容:爬取第一页演出信息,每一场演出信息包括演出名称、详情页网址、演出描述、演出时间、演出地点、票价。任务要求:使用XPath或者BeautifulSoup4完成。将结果保存为CSV文件。(2) 使用XPath或者Beautiful Soup4。目标网站: https://www.damai.cn/(1) 使用requests获取网页源代码。(3) 使用Python读/写CSV文件。源代码后续章节更新。
2024-12-24 12:11:20
203
原创 45、Python入门 Beautiful Soup4(BS4)
class_”来代替。在第9行的查询HTML代码中,class属性的属性值为“test”的标签,得到find()方法返回的BeautifulSoup Tag。由于HTML中的class属性与Python的class关键字相同,因此为了不产生冲突,BS4规定,如果遇到要查询class的情况,使用。假设需要获取“我需要的信息2”,由于这个信息所在标签的class属性的值为“test”,这个值本身就很特殊,因此可。那如果要获取“我需要的信息1”“我需要的信息2”和“我需要的信息3”,又应该怎么办呢?
2024-12-24 12:06:44
338
原创 43、Python入门 使用Googl e Chrome浏览器辅助构造XPath
在构造XPath语句的过程中,需要寻找“标志性”的标签。Google Chrome自带的开发者工具可以将网页源代码转换为树状结构,大大提高网页的可读性。在网页上单击右键,在弹出的快捷菜单中选择“检查”命令。打开开发者工具后,使鼠标指针在开发者窗口中的HTML代码中移动,可以看到页面上不同的地方会高亮,说明当前鼠标指针指向的这个标签,就对应了网页中。Ctrl+Shift+C将鼠标指针在网页上移动,可以看到开发者工具窗口中的代码随之滚动。高亮的这一部分的代码。除了根据代码找网页位置,还可以根据网页位置找代码。
2024-12-23 22:30:18
230
原创 42、Python入门 XPath语法
所以,写收货地址的时候,直接写北京就可以了,前面的“地球,亚洲,中国”可以省略。期望把“我左青龙,右白虎,上朱雀,下玄武,老牛在当中,龙头在胸口”全部提取下来。需要注意的是,在对XPath返回的对象再次执行XPath的时候,子XPath开头不需要添加斜线,直接以标签名开始即可。# 这样查找出来的结果为['我需要的信息1', '我需要的信息2', '我需要的信息3', '垃圾1', '垃圾2']<li class="info">, 所有的<li>标签都有一个class属性,值都为info,所以属性可以省略。
2024-12-23 22:27:06
297
原创 41、Python入门 XPath与XML简介
第三种:把lxml-3.7.3-cp36-cp36m-win_amd64.whl这个文件的扩展名由.whl改为.zip, 使用WinRAR或者7-Zip等解压缩工具来解压这个文件。例如对于64位的Python 3.6,可以下载lxml-3.7.3-cp36-cp36m-win_amd64.whl。XPath(XML Path)是一种查询语言,它能在XML(Extensible Markup Language, 可扩展标记语言)和HTML的树状结构中寻找结点。
2024-12-23 22:25:40
145
原创 40、Python入门 HTML基础
当作树根,从树根上面分出了两个树枝<head>和<body>,<body>里面又分出了class分别为useful和useless的两个树枝<div>……这里的<html>
2024-12-23 22:23:47
332
原创 39、Python入门 案例:爬取网络小说
从http://www.kanunu8.com/book3/6879爬取《动物农场》所有章节的网址,再通过一个多线程爬虫将每一章的内容爬取下来。text_block = text_block.replace('<br />', '') # 将内容里的<br />标签替换成空字符串。os.makedirs('动物农场', exist_ok=True) # 文件不存在则新建,存在则继续。start_url = 'https://www.kanunu8.com/book3/6879/' # 网址。
2024-12-22 10:48:32
358
原创 38、Python入门 爬虫的常见算法
路线为“首页→Python→Node.js→Golang→爬虫→Django→机器学习→基础知识→Express→基础知识→并行计算→课时1→课时2→……这样导致的问题就是,餐馆A的订单量可能是早上8点爬到的,而餐馆B是晚上8点爬到的。每个大分类的信息,然后从第1个大分类中爬取所有的课程信息,爬完了第1个大分类,再爬第2个大分类,直到所有大分类下面的课程信息都搞定了,再爬第一个课程的。的所有课时都爬取完成,再爬取Django的所有课程,接着爬取机器学习的所有课程,之后再去爬取Node.js的所有信息。
2024-12-22 10:42:47
553
原创 37、Python入门 多线程爬虫开发
由于爬虫是I/O密集型的操作,特别是在请求网页源代码的时候,如果使用单线程来开发,会浪费大量的时间来等待网页返回,所以把多线程技术应用到爬虫中,从运行结果可以看到,一个线程用时约34.8s,5个线程用时约8.7s,时间是单线程的五分之一左右。因此,如果线程池设置得过大,线程切换导致的开销可能会抵消多线程带来的性能提升。从上面的结果也可以看到,5个线程运行的时间其实比一个线程运行时间的五分之一要多一点。具体的应用场景下设置不同的大小进行测试对比,找到一个最合适的数据。可以大大提高爬虫的运行效率。
2024-12-22 10:41:26
180
原创 36、Python入门 多进程库_multiprocessing
result = pool.map(calc_power2, origin_num) # 第1个参数是函数名,第2个参数是一个列表,是一个可以迭代的对象。第2个参数是一个可迭代的对象,这个可迭代对象里面的每一个元素都会被函数clac_power2()接收来作为。在上面的代码中,先定义了一个函数用来计算平方,然后初始化了一个有3个线程的线程池。这3个线程负责计算10个数字的平方,谁先计算完手上的这个数,在这个例子中,线程池的map()方法接收两个参数,第1个参数是函数名,第2个参数是一个列表。
2024-12-22 10:39:46
232
原创 35、Python入门 多线程爬取内容
这种机制在I/O(Input/Output,输入/输出)密集型的操作上影响不大,但是在CPU计算密集型的操作上面,由于只能使用CPU的一个。在掌握了requests与正则表达式以后,就可以开始实战爬取一些简单的网址了。但是,此时的爬虫只有一个进程、一个线程,因此称为单线程爬虫。所以涉及计算密集型的程序,就需要使用多进程,Python的多进程不受GIL的影响。如果可以让爬虫同时访问10个页面,就相当于爬取速度提高了10倍。一个页面最多也就几百KB,所以爬虫在爬取一个页面的时候,多出来的网速和从发起。
2024-12-22 10:38:20
178
原创 34、Python入门 案例:requests与re爬取文章标题与正文
<', html, re.S) # findall匹配正文,结果为一个列表,一行为一个数据。)<', html, re.S).group(1) # 查找第一个匹配内容。content_str = '\n'.join(content_list) # 将两段正文使用换行符拼接起来。print(f'页面正文内容为:\n{content_str}')print(f'页面标题为:{title}')
2024-12-22 10:36:51
219
原创 33、Python入门 print函数补充
在字符串前添加字母"f",然后用花括号{}表示占位符,可以直接在花括号中填入变量名或表达式。在Python中,可以使用print函数进行格式化输出。在字符串中使用{}作为占位符,然后调用format方法,按顺序传入要插入的值。字符串占位符:%s:用于字符串类型的数据。浮点数占位符:%f:用于浮点数类型的数据。整数占位符:%d:用于整数类型的数据。
2024-12-22 10:18:57
464
原创 32、Python入门 requests请求网页源代码
result = {'username': username_list[i], 'content': content_list[i], 'reply': reply_list[i]} # 把作者、内容、时间写入字典。with open('tieba.csv', 'w', encoding='utf-8') as f: # 写入文件。3)、要获取网站的关键信息, 就需要观察网页源代码的规律。手动的部分是把网页的源代码复制下来, 自动的部分是通过正则表达式把其中的有效信息提取出来。
2024-12-22 10:15:51
450
原创 31、Python入门 半自动爬虫开发
result = {'username': username_list[i], 'content': content_list[i], 'reply': reply_list[i]} # 把作者、内容、时间写入字典。with open('tieba.csv', 'w', encoding='utf-8') as f: # 写入文件。3)、要获取网站的关键信息, 就需要观察网页源代码的规律。手动的部分是把网页的源代码复制下来, 自动的部分是通过正则表达式把其中的有效信息提取出来。
2024-12-22 10:14:11
470
原创 30、Python入门 自定义异常
return '输入的长度是%d,长度至少应是%d' % (self.length, self.atleast)你可以用raise语句来引发一个异常。异常/错误对象必须有一个名字,且它们应是Error或Exception类的子类。except ShortInputException as result: # x这个变量被绑定到了错误的实例。# raise引发一个自定义的异常。s = input('请输入-->')print('没有异常发生.')
2024-12-21 15:26:37
153
原创 29、Python入门 上下文管理器_with
open方法的返回值赋值给变量f,当离开with代码块的时候,系统会自动调用f.close()方法,with的。# 改良版本的程序是对可能发生异常的代码处进行try捕获,使用try/finally语句,该语句表示如果在try代码块中程序出现了异常,后续代码就不再执行,# 这样写有一个潜在的问题,如果在调用write的过程中,出现了异常进而导致后续代码无法继续执行,close方法无法被正常调用,因此资源就会一直被。程序正常执行完成,或者出现异常中断的时候,都会调用__exit__()方法。
2024-12-21 15:25:44
251
原创 28、Python入门 异常处理
咱们应该对else并不陌生,在if中,它的作用是当条件不满足时执行的实行;程序在运行过程中会经常遇到类似的异常,如果我们不进行处理,此时程。在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。程序在运行过程中,由于我们的编码不规范,或者其他原因一些客观原因,导致我们的程序无法继续运行,此时,程序就会出现异常。print('没有捕获到异常,真高兴') # 没有出现异常的处理语句。# 如果在读取文件的过程中,产生了异常,那么就会捕获到。可能会出现异常的代码块。
2024-12-21 15:20:59
326
原创 27、Python入门 序列化与反序列化_pickle
如果是一个自定义对象,默认无法装换成为json字符串,需要手动指定JSONEncoder.如果是将一个json串重新转换成为对象,这个对象里的方法就无法使用了。pickle模块里方法的使用和json里方法的使用大致相同,需要注意的是,pickle是将对象转换成为二进制,所以,如果想要把内容写入到文件里,这个。将对象转换成为字符串,不管是在哪种操作系统,哪种编程语言里,字符串都是可识别的。思考:json和pickle两个模块都可以将对象进行序列化和反序列化,那它们有哪些区别,在使用场景上又该如何选择?
2024-12-21 15:19:31
237
原创 25、Python入门 应用:文件备份
file_name = input("请输入要拷贝的文件名字:")# 输入文件的名字, 然后程序自动完成对文件进行备份。# 把旧文件中的数据, 一行一行的进行复制到新文件中。# 以读的方式打开文件。# 分割文件名和后缀名。# 组织新的文件名字。
2024-12-21 15:05:42
262
原创 26、Python入门 序列化和反序列化_json
设计一套协议,按照某种规则,把内存中的数据转换为字节序列,保存到文件,这就是序列化,反之,从文件的字节序列。# 注意:如果是一个空对象,调用dumps方法转换成为一个JSON对象,得到的结果是null(JS里的空对象)# dump方法可以在将对象转换成为字符串的同时,指定一个文件对象,把转换后的字符串写入到这个文件里。# load方法可以传入一个文件对象,用来将一个文件对象里的数据加载成为Python对象。# dump方法可以接收一个文件参数,在将对象转换成为字符串的同时写入到文件里。
2024-12-21 15:03:17
362
原创 24、Python入门 StringIO和BytesIO操作
除了将数据写入到一个文件以外,我们还可以使用代码,将数据暂时写入到内存里,可以理解为数据缓冲区。如果想要以二进制的形式写入数据,可以使用BytesIO类,它的用法和StringIO相似,只不过在调用write方法写入时,需要传入二进制数据。print(f.getvalue().decode('utf-8')) # 解码才能显示。f.write('你好\r\n'.encode('utf-8')) # 以二进制形式写入。f.write('中国'.encode('utf-8'))
2024-12-21 15:00:19
242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人