page contents

用python写web必须知道的知识要点

网络协议 在网络上通信,我们需要相关的网络协议,如TCP/IP, UDP…等待。 当然,你可以说我从一个框架开始,并不想知道太多。没关系,但我相信你会愿意回顾一段时间的基础知识。 说到网络编程...

网络协议

在网络上通信,我们需要相关的网络协议,如TCP/IP, UDP…等待。

当然,你可以说我从一个框架开始,并不想知道太多。没关系,但我相信你会愿意回顾一段时间的基础知识。

说到网络编程,您一定见过Socket,它转换成Socket。这是什么?我相信你和我第一次见到它时一样迷糊。我认为这不是一个好的翻译。我认为引用一段话是一个很好的解释。

Socket是网络编程的一个抽象概念。通常我们用一个Socket表示“打开了一个网络链接”,而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型即可。

然后,不管各种框架是什么,套接字模块通常直接用Python在网络编程中使用。具体的示例代码,我在书中随机找到伪代码并复制到下面。

attachments-2019-12-fQ2CSLKJ5e06b8c45f5af.png

过程如下:首先创建服务器,然后创建客户机。

然后他们开始参与发送和接收对话,直到连接终止。

当我们这样做时,我们需要打开两个命令行窗口,一个运行服务器程序,另一个运行客户机程序,这样我们就可以看到对话的效果。

在这里您应该有一个大致的概念:在网络上进行通信,需要通信的双方,以及网络协议,然后建立连接。


Web开发

在Web应用程序中,服务器将Web页面传递给浏览器,实际上,它将Web页面的HTML代码发送给浏览器,以便浏览器能够显示它。浏览器和服务器之间的传输协议是HTTP,因此:

HTML是一种用来定义网页的文本,可以用HTML编写。

HTTP是一种通过网络传输HTML的协议,用于浏览器和服务器之间的通信。

HTTP协议似乎是Web开发中一个非常重要的协议。

对于HTTP协议的具体知识,我推荐一本书《图形化HTTP协议》。

因此,在Web应用程序中,通常很难接受HTTP请求、解析HTTP请求和发送HTTP响应。

因此,如果您需要自己实现它,则必须使用TCP连接、HTTP原始请求和响应格式。据估计,您必须阅读大量相关规范。


WSGI

然而,大多数Web应用程序开发人员不愿意在这些繁重的工作上花费时间,所以WSGI应运而生。它的全称是Web服务器网关接口。

WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。

Python还有一个名为wsgiref的内置WSGI服务器,它是用纯Python编写的WSGI服务器的参考实现。所谓的“参考实现”是指该实现完全符合WSGI标准,但不考虑任何操作效率,仅用于开发和测试。

了解WSGI框架后,我们发现:实际上,Web应用程序是编写一个WSGI处理函数来响应每个HTTP请求。

但是当有更多的HTTP请求和url时,问题又出现了:如何处理url和处理函数之间的映射关系?

WSGI提供的接口虽然比HTTP接口高级了不少,但和Web

App的处理逻辑比,还是比较低级,我们需要在WSGI接口之上能进一步抽象,让我们专注于用一个函数处理一个URL,至于URL到函数的映射,就交给Web框架来做。

因此,Python内置的WSGI服务器当然不足以满足许多人的需求,但我们可以选择其他框架。


Web框架

目前,有许多Web框架运行在WSGI协议上。从个人经验来看:Flask为轻量级,Django为重量级,当然还有其他的,但我没有深入研究,您可以自己搜索。

有很多教程可以学习它们,如“Wolf Book”、“Flask Web开发实践:介绍、改进和初步分析”、“Dog Book”、“Flask Web开发:基于python的Web应用程序开发实践”等很好的参考书。

当然,这些框架也单独实现WSGI。

因为每个Web框架并不专门用于服务器的实现,所以这些WSGI服务器通常在开发和调试期间使用。

在生产环境中部署时,你不会简单地使用Web框架附带的服务器。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-06-OmyR8u7E62a43a0b82486.jpeg

  • 发表于 2019-12-28 10:06
  • 阅读 ( 672 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
Pack
Pack

1135 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1510 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章