Web开发(五)-JWT
这篇文章将会向你介绍JWT的理论基础和程序实现
一. JWT-理论JWT基础如果你没有任何基础,请耐心看完这一部分
想象一下你登录某个网站的场景。你从登录页面输入账号密码进入到该网站,同时该网站返回你的个人信息,包括你的昵称,头像,个性签名,显示到网页上。更重要的是,登录网站意味着你的身份得到服务器的验证,你获得了访问你的个人信息的权限。
服务器通过账号密码识别我们的身份吗?是,但不完全是。首先,你需要明白我们浏览器所依靠的http协议是无状态的。这就好像你和一个记忆力差劲的人交流,每一轮对话之后,他都会忘记你的名字。所以,你在每次和他说话之前,都需要重申你的身份。服务器就像这么一个人,尽管你对它说尽千言万语,而服务器只会在众多用户中迷失你的名字。
那么,这是否意味着我们必须在每一个请求之前都输入我们的账号密码来告知服务器我们的合法身份呢?答案是否定的,有更简单的解决方案。JWT(JSON WEB TOKEN)就是一种实现方式。
在输入账号密码之后,服务器会返回一个token给我们。以后在每次请求,我们带上token,服务器便会在用户中认出你。但是,如果你企图修改token,服务器能轻 ...
Web开发(四)-MyBatis
一. MyBatis-理论这一部分我也不是很了解,简单的写点理解。
1. MyBatis基础MyBatis将数据库语句映射到java函数,将一个函数同SQL语句绑定后,当你调用这个函数,对应的SQL语句将会执行,并且返回参数到函数的返回值。
同时,MyBatis将数据库的表和java的对象做了很好的连接。在MyBatis的作用下,映射SQL查询语句的函数可以返回java对象。
二. MyBatis实现1. 依赖和配置依赖你可以直接使用MyBatis-plus版本,它支持MyBatis
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
<!- ...
爬虫(三):结果保存
一般来说会把爬取的结果存储到列表或者字典中,然后将结果写入文件中
一. TXT代码比较简单,看一下应该就懂了…
对于列表
# 是否保存
save = input("共" + str(len(comment_list)) + "条记录,保存到commen.txt(y/n):")
if (save == "y" or save == "Y"):
print("正在写入中...")
with open("comment.txt", "w", encoding="utf-8") as f:
for comment in tqdm(comment_list):
f.writelines(comment + "\n")
对于字典
# 是否保存?
save = input("共&quo ...
Web开发(三)-TomCat
一. TomCat-理论1. Tomcat基础TomCat是一个Web服务器,它默认活跃在电脑的8080端口,接收HTTP请求。
同时,TomCat提供规范的HTTP接口,它接收规范的HTTP请求,对于Response,你也不需要自己编写,因为TomCat帮助你返回标准的Response。
下面是具体实现:
当你访问此localhost:8080时,浏览器或者其他代理发送的HTTP请求将会被TomCat截获,
如果你在SpringBoot框架中使用TomCat,你可以获取HTTP请求,对数据做处理。
最后,你希望对这个请求作出响应,TomCat帮助你构建标准的HTTP响应。
二. TomCat-实现1. 依赖和配置当你新建一个SpringBoot项目时,该项目集成了TomCat。
因此,你不必要花时间去配置TomCat。
2. Controller类一般来说,我们把对请求的处理封装在Controller类中。
@RestController你可以在使用这个注解标注为Controller类,在这个类中你可以定义函数处理HTTP请求。
@RestController = ...
车载U盘
最近发现一个好玩的东西,车载U盘不知道大家有没有用过。
暑假,有个哥哥叫我帮他U盘下点歌,顺便删掉里面的一些DJ歌曲。
我想,这不简单吗?我接过U盘,插在电脑上,吓我一跳,提示我无法打开,需要格式化,这点错歌不全没了吗。
我才发现,事情没有我想象的那么简单。
于是,我马上搜索 “车载U盘” 相关信息。
互联网上信息很多,但是我的信息检索能力还算合格吧。不一会就发现了问题所在。
一般车子系统是Linux,车载U盘使用也是Linux系统的分区,因此我插入Windows系统的电脑并不能识别出U盘的音乐文件,而是直接提示我格式化U盘。
原来如此,那么解决方案是什么呢?
最简单的方法:买一根连接U盘的转接线,手机是Linux内核的Android操作系统,因此可以解析车载U盘中的音乐文件。
如果你的计算机内装有Linux虚拟机,那么你也可以通过虚拟机连接U盘来对其中的文件进行更改。
嗯,然后就熬夜下歌…最后发现搞错了,啊…joker
额,怎么说呢?
一个小小的车载U盘,即使学过操作系统,考试也觉得不难,但是倘若缺乏这次经历,可能我仍不知。
我就像井底之蛙,但还好没事折腾两下自己,能看看 ...
爬虫(二):响应解析
当你获取响应文件后,你需要做的就是收集其中的关键信息。对不同的响应文件格式你需要选择不同方式解析。下面是一些常见的响应解析方式
一. Xpath1. Xpath基础Xpath适用于解析HTML格式文件,并且语法及其简介。
2. 对str对象使用Xpath对于一般的HTML格式响应对象 response.text() 是字符串类型,因此在使用之前: from lxml import etree
3. Xpath语法这里先举个例子(也是我开始学爬虫的测试网站)
如果你想拿到 a标签 的href属性://div/ul/li/a/@href
如果你想拿到 img标签 的src属性://div/ul/li/a/span/img/@src
如果你想拿到 b标签 的内容://div/ul/li/a/b/text()
//div能够锁定所有div标签,这也是经常使用的Xp ...
博客(四):优雅的写一篇文章
你需要先了解…
有关此文章…
一. MarkDown/MD基础如果你需要向博客上传文章,将MD文档放置到blog/hexo/source/_posts目录下即可。
类似于WORD文档,MD同样适用于写作和笔记。MD依赖于键盘输入控制文章的排版格式,不需要鼠标意味着你能拥抱更快的写作速度。不必担心的是,MD比WORD要简单的多。
如果你需要学习,下面是一些MarkDown语法。
1. 标题# 一级标题
一级标题## 二级标题
二级标题### 三级标题
三级标题#### 四级标题
四级标题##### 五级标题
五级标题###### 六级标题
六级标题2. 正文正文
正文
加粗
**加粗**
斜体
*斜体*
加粗&斜体
***加粗&斜体***
3. 图片&链接图片复制图片以后在文档的合适位置粘贴。
当然你可以更改括号中的图片位置,MD文件会识别同目录下的图片。
如果你把这些图片放在下层的一个目录进行收录,那么请更改括号中的路径。
另外,你也可以在括号中放置图片的网页链接。
链接百度
[百度](https: ...
Web开发(二)-SpringBoot
你需要先了解…
有关此文章…
一. 新建SpringBoot项目1. IDEA新建SpringBoot项目(参考文章)[https://blog.csdn.net/qq_43006591/article/details/106137465]
二. SpringBoot框架解析1. .idea2. .mvn3. src/main
/resource/static存放CSS,JS以及图片等
/resource/templates存放Web页面
application.properties/application.yml用于存放程序的各种依赖模块的配置信息,比如 服务端口,数据库连接配置等
/main/java/com.example.xxx存放java源码
/main/java/Application.javaSpringBoot 程序执行的入口,执行该程序中的 main 方法,启动当前SpringBoot项目。
/test与mian目录结构类似,没有reso ...
爬虫(一):请求&响应
你需要先了解…
关于此文章…
一. Requests-概述Request是Python的第三方库,用于网络请求并接收返回的数据,你需要在Python的虚拟环境中安装使用。
Request帮助你发送网络请求,同时你可以自定义Request携带的参数。
另外,Request模块接收响应请求的数据,并把Response作为函数的返回。
如果你想实现一个爬虫,对返回的网页文件进行Xpath/正则表达式解析,并将你需要的内容存储即可。
二. Request基础1. 下载&安装pip/pip3 install requests
2. Request库关于requestrequest支持各种HTTP方法,同时你可以指定请求所携带的内容。
获取响应文件
response = request.get(url)
带上请求头headers
response = request.get(url, headers = headers)
伪装浏览器代理,避免反爬虫*如果你向https://www.douban.com/发送请求,响应码为418,
headers = & ...
爬虫:写在前面
一些理解
网络爬虫:爬虫完整的名字应该叫网络爬虫,因为它依赖于HTTP协议获取数据,浏览器上Web应用的基础,顾名思义需要网络。
所见即所得:另外,浏览器的原则是所见即所得,你在浏览器上看到的东西,都是服务器通过网络发到本地的,因此能见到的就能够爬到。
Robots.txt:在爬取之前应该仔细阅读网站设置的爬虫规则,上面有详细的允许和不允许爬的内容。
爬虫基本运行过程一般是三个步骤:请求数据,过滤数据,保存数据。
一. Requests-概述Request是Python的第三方库,用于网络请求并接收返回的数据,你需要在Python的虚拟环境中安装使用。
Request帮助你发送网络请求,同时你可以自定义Request携带的参数。
另外,Request模块接收响应请求的数据,并把Response作为函数的返回。
如果你想实现一个爬虫,对返回的网页文件进行Xpath/正则表达式解析,并将你需要的内容存储即可。
二. Request基础1. 下载&安装pip/pip3 install requests
2. Request库关于requestreque ...