跟DW学Django-T1
作者:互联网
Task1 - Python与前端基础知识回顾
由于本文章主要是记录课程中新的或者不熟悉的知识点,所以并没有将所有的内容都往上放,请见谅。
Python知识回顾
本节课程中包含以下内容:
- 数据类型:整数、浮点数、字符串、列表、字典
- 注释:单行、多行
- 流程控制:判断(if:…elif:…else:)——短路思想:在判断中,如果前方语句已经确定其结果,则不用判断接下来的语句(如下第一个例子),循环(for:)(while:)(如下第二个例子)
a = 10
b = 20
if a > b and print(b):
print('ok')
else:
print('not ok')
# 以上返回结果为:not ok
# 上述结果没有打印b,是因为前半句"a>b"已经让判断语句返回值为False,剩余的部分也不用再看
for i in range(3):
print(i)
else:
print('done')
# 以上返回结果为:
'''
0
1
2
done
'''
# else在完成循环后被执行,除非之前存在break跳出循环
- 倒序呈现字符串:order = ‘abcdefghijklmnopqrstuvwxyz’, reverse_order = order[::-1]
- 交换两个值:a, b = b, a
- 函数生成
HTML 知识回顾
本节课程,通过创建一个网页来展示一个html网页会带有的内容,具体以下内容:
HTML的语法(结构)
<html>
<head>
<!-- 头部一般存放样式——css(定义美观)和 js(定义行为和反应) -->
<script> <!--script放在head中,每当页面更新就会同步更新;放在body里,只有当页面更新完,body的script才会更新-->
function test(){
alter(1234);
}
</script>
<style> <!--确定样式-->
p{
color: red;
}
</style>
</head>
<body>
<!-- 定义组织内容 -->
<p>
<!-- 定义一段文字 -->
</p>
<br> <!-- 此为换行,没有结尾对应部分 -->
<table>
<tr>
<!-- 此为表中的一行-->
<td>
<!-- 此为表中的一列-->
</td>
</tr>
</table>
<a href="http://www.baidu.com">Google</a> <!--a标签,用于增加属性,如链接-->
<div></div>
<input type="text" value="123"> <!--按钮控件:此为可输入内容的框-->
<input type="button" onclick="test(); "value="提交"> <!--按钮控件:此为提交按钮,并与head中的test()方法,在click的时候关联在一起-->
</body>
</html>
检查html文件的方式
- 在虚拟机中双击.html ,虚拟机就会用默认的浏览器打开
- 在本地打开虚拟机中的html文件:在VSCode中安装Live Server插件,然后点开VSCode右下方的“Go Live”按钮,将端口(5500)加入到防火墙,在浏览器中输入“:port"即可打开该文件所在的文件夹,找到该文件后即可打开该网页。
通过宝塔上传模版
因为宝塔可以访问虚拟机的文件夹,所以可以对其进行更好的文件传输管理。
待文件传输完成至html下的site文件夹(原来的文件夹改名而得)并解压在该文件夹中后,可以通过Live Server访问如下地址:
http://:5500/src/html/site/index.html
案例:爬虫——爬取静态网址信息
安装包
pip3 install bs4
pip3 install requests
爬虫
网络状态
# 需要安装BS4 及 requests
import requests
from time import sleep
from bs4 import BeautifulSoup
# 模拟访问网站
req = requests.get('http://192.168.214.128:5500/src/html/site/index.html')
print(req.status_code)
- 200-访问成功,404-网站不存在,500-服务器无法访问
解析网络内容
# 以html.parser解析该网站,避免出现乱码
soup = BeautifulSoup(req.text, 'html.parser')
通过网站中的类定位目标内容
# 通过开发者工具去定位目标内容的所在:复制class所在
layui_col_md12 = soup.find_all('div', attrs={'class':'layui-col-md12'})
for i in layui_col_md12:
print(i)
break
# 需要逐个寻找目标内容layui_col_md12是一个list
通过类来管理获取到的信息
# 通过类控制上述获取的信息
class robot():
def __init__(self):
self.url = 'http://192.168.214.128:5500/src/html/site/index.html'
def getInfo(self):
try:
req = requests.get(self.url)
soup = BeautifulSoup(req.text, 'html.parser')
layui_col_md12 = soup.find_all('div', attrs={'class':'list-text'})
# 可以找到全部class为content的div(纵向提取)
for i in layui_col_md12:
print(i.text)
print('-' * 50)
except:
pass
if __name__ == '__main__':
r = robot()
r.getInfo()
python实现网络请求
import socket
# 建立服务
sk = socket.socket()
# 绑定IP
# sk.bind(('192.168.214.128', 5500)) # Live Server 已关闭,此时5500为自己的端口
sk.bind(('127.0.0.1', 5500))
# 监听
sk.listen()
print('服务器开始运行')
while True:
# 连接客户端
conn, addr = sk.accept()
# 接收数据
data = conn.recv(1024)
print(data)
# # 返回连接信息:成功连接——200和数据包
# conn.send(b'HTTP/1.1 200 OK\r\n\r\n')
# conn.send(bytes('我是python客户端,我已接到你的请求', encoding='utf-8'))
if data:
conn.send(b"HTTP/1.1 200 OK\r\n\r\n")
conn.send(bytes('你好啊', encoding='utf-8'))
break
标签:__,layui,Django,html,print,DW,T1,col,5500 来源: https://blog.csdn.net/weixin_44445068/article/details/117922070