Python Web开发基础知识篇

一,基础知识篇

本人是一名在校大学生,目前正在学习一些python web开发的内容,本片文章会简单地说一些python开发web中所必须的一些基础知识.主要包括HTML和css基础、JavaScript基础、网络编程基础、MySQL数据库基础、Web框架基础等知识。

1,Web简介

Web,全称为World Wide Web,也就是WWW,万维网。

url:统一资源定位符

Web工作流程:URL的服务器名部分被域名系统(分布在全球的英特网数据库解析),根据解析结果进入IP地址。这样客户端可直接与IP所在的服务器进行交互,发送HTTP请求。

2,HTML基础和css基础

此处省略 01.HTML和CSS基础知识总结 - 掘金 (juejin.cn),这篇文章可以简单参考一下。

3,Javascript基础与网页交互

JavaScript基础知识汇总~ - 掘金 (juejin.cn)参考这篇文章。

4,网络编程基础

1 TCP/IP协议

包含四个概念层 应用层(FTP,Telnet,DNS,SMTP)------>传输层(TCP,UDP)------> 网络层(网际协议IP,互联网组管理IGMP,互联网控制报文ICMP)------>链路层

1,IP协议

通信时接收方的地址。IPv4是一个32为整数,路由器决定如何将一个IP包转发出去。

2,tcp协议

建立在IP协议之上,负责在两台计算机之间建立可靠的连接,保证数据包按顺序到达,会通过三次握手建立可靠连接。

tcp会对每一个IP包编号,包丢掉会自动重新发送

3,UDP协议

使用UDP协议,不需要建立连接,只需要知道对方的IP地址和端口号,就可以直接发送数据包,比TCP协议速度快,但是不可靠,容易丢包

4,socket简介

让两个程序进行网络通信,两个都必须使用Socket套接字 Python 高级编程之网络编程 Socket(六) - 掘金 (juejin.cn)参考这篇文章的第二部分。

2,TCP编程

1,创建TCP服务器

1,使用socket创建一个套接字

2,使用bind绑定ip和端口

3,使用listen使套接字变为可以被动连接

4,使用accept等待客户端链接

5,使用recv/send接受发送数据

python 复制代码
# _*_ coding: utf-8 _*_
# @Time     : 2023/7/30 22:40
# @Author   : jiaojiao
import socket
host = "127.0.0.1"
port = 8080
web = socket.socket()
web.bind((host,port))
web.listen(5)
print("服务器等待客户端链接:.......")
while True:
	conn,addr = web.accept()
	data = conn.recv(1024)
	print(data)
	conn.sendall(b"HTTP/1.1 200 OK\r\n\r\nHello World")
	conn.close()

2 ,创建TCP客户端

1,使用socket创建一个套接字

2,连接服务器地址和端口

3,发送数据

python 复制代码
# _*_ coding: utf-8 _*_
# @Time     : 2023/7/30 22:50
# @Author   : jiaojiao
import socket
s = socket.socket()
host = "127.0.0.1"
port = 8080
s.connect((host, port))
while True:

	send_data = input("请输入发送的数据:")
	s.send(send_data.encode("UTF-8"))
	recvData = s.recv(1024).decode("UTF-8")
	print("接收到的数据为:",recvData)
	# s.close()

3,UDP编程

一般用于多点通信和实时的数据业务

语音广播,视频,聊天软件,TFTP,DNS

创建UDP套接字,绑定地址,然后接收和发送数据就行了。偷个懒,就不写代码了

Web基础

1,HTTP协议

依然还是推荐别人的文章,毕竟写的比我的好HTTP基本内容|青训营笔记 - 掘金 (juejin.cn),看一些他的基础性内容就好了

2,静态服务器

这个暂时跳过吧!!!

5,WSGI接口

1,CGI简介

CGI是通用网关接口,运行在服务器上。CGI进程针对每个请求进行创建,用完抛弃。当应用程序接受数千个请求,就会创建大量的语言解释器进程,容易宕机。CGI的加强版FastCGI应运而生。

FastCGI使用进程、线程池来处理一连串请求。这些进程线程有FastCGI服务器管理,非Web服务器。减少网页服务器与CGI的交互开销。

2,WSGI(异步Web服务)

3,定义WSGI接口

python 复制代码
def application(environ,start_response):
    start_response('200 OK',[('Content-Type','text/html')])
    return [b'<h1>Hello World!<h1>']

environ:一个包含所有http请求对象的字典对象

start_response:一个包含http响应的函数

python内置的WSGI服务器就是WSGIREF模块

主要就是做动态效果,实现交互。

相关推荐
追逐时光者33 分钟前
一款基于 Ant Design 设计语言实现、漂亮的 .NET Avalonia UI 控件库
后端·.net
笃行3503 小时前
从零开始:SpringBoot + MyBatis + KingbaseES 实现CRUD操作(超详细入门指南)
后端
该用户已不存在3 小时前
这几款Rust工具,开发体验直线上升
前端·后端·rust
用户8356290780513 小时前
C# 从 PDF 提取图片教程
后端·c#
L2ncE3 小时前
高并发场景数据与一致性的简单思考
java·后端·架构
水涵幽树4 小时前
MySQL 时间筛选避坑指南:为什么格式化字符串比较会出错?
数据库·后端·sql·mysql·database
ERP老兵_冷溪虎山4 小时前
从ASCII到Unicode:"国际正则"|"表达式"跨国界实战指南(附四大语言支持对比+中医HIS类比映射表)
后端·面试
HyggeBest4 小时前
Golang 并发原语 Sync Cond
后端·架构·go
老张聊数据集成4 小时前
数据建模怎么做?一文讲清数据建模全流程
后端
颜如玉4 小时前
Kernel bypass技术遥望
后端·性能优化·操作系统