python网站开发需要学什么,python开发网站需要什么

大家好,给大家分享一下python网站开发自学完整教程百度网盘,很多人还不知道这一点。下面详细解释一下。现在让我们来看看!

文章目录

1\. 引言1.1 桌面应用程序开发1.2 web应用程序开发2\. Web后端开发2.1 web通信机制2.2 Python进行Web开发3\. Python框架对比3.1 Web框架,提升开发效率的工具3.2 常见的Web框架4\. FastAPI应用4.1 什么是FastAPI?4.2 使用FastAPI搭建我们的Web应用4.3 框架常见能力5\. 小结题外话

1. 引言

学完了 Python 入门的上中篇内容,接下来是使用场景最为广泛的 Web 开发知识。

随着近年来,互联网技术的飞速发展,再加上移动端应用的突飞猛进,可以说真正让程序开发站在时代的风口,在飞速前行。

程序开发从应用产品的角度上,一般可分为以下两种。

1.1 桌面应用程序开发

这是一种比较基本的传统的软件开发方式,是基于 C/S(Client-Server)架构模式的软件体系。

最开始,互联网还没有那么广泛时,基本都是 Client-Server 架构,即每个互联网应用都是一个软件包。我们比较熟悉的有 PhotoShop、QQ 等桌面程序。

它们使用到的开发语言有 C、C++、Java、C# 等,在桌面应用程序开发过程中,我们常常需要考虑的是语言的跨平台性以及软件的多平台支持,比如常见的操作平台 Windows、Linux、MacOS。我们开发一款桌面应用软件,一般需要考虑对这几类操作系统的支持。

1.2 web应用程序开发

后来,由于应用程序的更新升级非常迅速,3 天一小版本,5 天一大版本,频繁升级,让用户很不开心。因此,软件开发者就开始想办法,不然这么玩下去应用得凉,于是如今很流行的 BS(Browser/Server)架构上场了。

BS 架构最核心的点在于,应用程序还是部署在服务器上,但是访问它们只需要浏览器的 Web 页面来请求就可以了。这让用户们纷纷鼓掌欢迎,毕竟,电脑/手机装不了太多应用软件,但装个浏览器还是 So easy 的,何况在访问网页时还不需要频繁的升级软件。

一个 Web 互联网产品中,基本上会分为 web UI 设计、Web 后端开发以及 Web 前端/小程序端开发。其中 Web 前端开发主要是页面开发,如今成熟的互联网产品都是前后端分离,至于前后端融合开发的产品开发者(又叫全栈开发)不是没有,而是在大型的互联网产品中相对比较少见。

像小❤以前做传统软件的开发时,就用到了 Java+Spring+JSP+HTML 进行全栈开发,不过那都是过去了,目前 All in 后端开发也挺好的。毕竟咱打工人的觉悟就是:俺是一块砖,哪里需要往哪搬~

现在,你应该已经了解 Web 开发的重要性了,Python 作为一门解释型脚本语言,开发效率很高,所以非常适合用来做 Web 后端开发。

知道了我们现在流行的网络通信模式是 Web 通信(即 BS 架构),现在我们来了解一下 Web 通信的原理。

2. Web后端开发

2.1 web通信机制

学过计算机网络的都知道(没学过也不要紧),浏览器和服务器的交互是通过 HTTP 网络协议来进行通信的。当我们在网页上输入一个网址,或者点击一个链接时,一个 HTTP 请求就从你的浏览器发送到了目标服务器。

这个是浏览器通过 HTTPs(= HTTP+数据加密+身份认证+完整性保护)协议访问服务器的过程,如图我们不难看出,所谓上网其实就是对网络资源的请求。

这个请求包括一个标识所需资源的唯一 URL,可以理解为网址,但在服务器中它是一个定义资源的唯一路径。

比如 对应的百度公司的服务器中,可能映射了一个唯一的网络进程,当你在百度搜索框里输出要查询的内容时,请求就通过网络传输到了一台服务器上,服务器上的 Web 应用处理完请求后,就回复给浏览器一个 HTTP 响应信息。这个响应信息里面就包括了请求的状态(是否成功),请求的内容等。

随后,浏览器通过响应的内容,渲染出我们看到的搜索完成的页面,一次 HTTP(或 HTTPs)请求就结束了。

2.2 Python进行Web开发

说了这么多,那我们作为开发者,如何在服务器上部署自己的应用为用户提供网络服务呢?

别着急,Python 为我们提供了规范的接口,只需要实现一个标准的 HTTP 处理函数即可。首先,我们在电脑中随便选取一个目录,编写 文件:

def application(env, start_resp): start_resp('200 OK', [('Content-Type', 'text/html')]) return [b'<h1>Hello, Python Web</h1>']

然后在同一个目录下,再编写一个 文件,来启动服务器:

# 从wsgiref模块导入make_server包 from wsgiref.simple_server import make_server # 导入我们自己编写的application函数 from hello import application # 创建一个服务器,IP地址为空,端口是8000,处理函数是application httpd = make_server('', 8000, application) print('Serving HTTP on port 8000...') # 监听HTTP请求 httpd.serve_forever()

这时候,我们通过 cmd 进入命令行,在刚才的文件目录下执行 python ,就启动好我们自己的服务器了:

当命令行打印 Serving HTTP on port 8000... 就代表服务启动成功了,如果启动失败,我们需要检查一下 8000 端口是否被其他程序占用,或者在 里面换一个端口再启动。

随后,我们打开任意浏览器,在地址栏输入 127.0.0.1:8000,就可以看到如下页面:

此时,属于我们自己的 BS 架构就完成搭建成功了,是不是很简单!

3. Python框架对比

上面我们已经实现了一个最简单的服务器,但是离真正上线可用还有一段距离,因为我们的 Web 应用最终的目标是给用户提供服务,而提供服务就必须要接收用户的实时请求,根据请求的内容回复不同的资源。

那么我们如何高效处理用户入参,并快速响应资源呢?

3.1 Web框架,提升开发效率的工具

答案是 Web 框架,它可以用来帮助我们提升效率,节省时间,避免处理一些底层的细节。目前业界做 Web 开发,99.9% 的程序员会选用合适 Web 框架助力。

简单来说,如果我们用 Python 开发 Web 应用,所有的代码都得自己手动敲,1000 行的代码用了 Web 框架后,可能只需要 100 行。

3.2 常见的Web框架

在 Python 领域,开发 Web 应用最主流的框架是 FastAPI、Django 和 Flask,它们都非常优秀。

尤其是 FastAPI,是用于构建 Web API 的现代、开源、快速、高性能的 Web 框架,它基于Python 3.6+ 标准类型提示,支持异步,正如它的名字,FastAPI 就是为构建快速的 API 而生。

Django 生态很丰富,但是模块较重,用起来相对比较笨重;而 Flask 简单易用,但是对开发人员的要求比较高,否则 Web 应用的代码容易引起安全漏洞。

基于三者的特定对比,我们接下来选择最年轻且性能较高的 FastAPI 来入门。

4. FastAPI应用

4.1 什么是FastAPI?

FastAPI 中文参考文档:

FastAPI 是 Python 开发的一个开源 Web 框架,几乎包括了 Web 应用的所有内容,可用于快速搭建高性能、优雅的网站应用。最主要的是,FastAPI 提供了 Web 开发经常使用到的模块,包括自动生成接口文档等,使开发者能够专注业务部分。

4.2 使用FastAPI搭建我们的Web应用

首先,我们安装 fastapi 的三方包:

pip install fastapi uvicorn

编写一个 文件:

from fastapi import FastAPI #创建一个FastAPI实例,一般用app做实例名,后续运行时会用到这个名称 app = FastAPI() # 创建一个路径操作,当为"/"时,可以直接访问服务器,如127.0.0.1:8000 # 如果路径为 “/hello",则需要在路径加上,如127.0.0.1:8000/hello # 在HTTP协议中,一般用特定的方法执行不同的任务,比如get、post、put、delete ("/") def hello(): # 接口返回内容,这里可以是一个dict,或者是str、int,甚至是一个list return {"Hello":"world"}

然后在命令行进入该文件目录,运行:

uvicorn main:app --reload

其中,uvicorn 代表通过该命令启动文件,main 指代 文件,app 指在 里面通过 app = FastAPI() 创建了 app 对象,--reload 让服务器在更新代码后重新启动,仅在调试时使用该选项:

可以看到,运行成功了,自动监听本地的 8000 端口。

于是我们打开浏览器,访问 127.0.0.1:8000,出现以下页面:

不难看出,用 FastAPI 启动的 Web 服务器,代码更为简洁。同时,FastAPI 还可以自动根据接口参数自动生成Swagger文档,只需访问 127.0.0.1:8000/docs:

这样,我们第一个用 FastAPI 启动的服务器就成功运行起来了,不难看出这比手敲代码方便很多。

4.3 框架常见能力

接口入参

如果我们想要在接口添加入参,可以在路径定义变量:

from fastapi import FastAPI app = FastAPI() ("/books/{book_id}") def read_book(): return {"book_id":book_id}

我们将以上内容保存在 文件中时,由于之前启动加了 --reload 参数,服务会重新启动:

此时,我们在浏览器中访问地址 http://127.0.0.1:8000/books/123:

可以看到,接口入参已经被接收,并返回给浏览器了。

除此之外,FastAPI 还很方便地支持 Body 传参,顺序传参,默认传参等能力。可以说,Web 开发上,FastAPI 已经帮我们做到了即拿即用,我们只需要调用它封装好的模块包就可以了。

Body请求体

除了在接口路径获取参数以外,FastAPI 给我们提供的三方包里面还可以友好支持获取「请求体」参数。

编写 文件:

from fastapi import FastAPI from pydantic import BaseModel # 新增一个书籍Book的数据结构,继承自BaseModel类 class Book(BaseModel): name: str desp: str price: float app = FastAPI() # 定义一个post接口,接收一本书的信息 ("/books/") async def create_book(book: Book): return book

当我们启动服务器时,127.0.0.1:8000/books 接口就会接收请求体作为 JSON 读取,然后转换为对应的数据结构。注意,我们传入的 JSON 需要和定义保持一致,比如:

{ "name":100, "desp":"一本书", "price":88 }

其中,name 为 str 类型,但是我们传了 100 是整型,所以接口会报错。

同时,在开发过程中,我们可以随时打开 Swagger 文档【127.0.0.1:8000/docs】,查看接口定义:

这样,我们在传入参数时,可以先参考接口文档,防止数据结构或字段格式出错。

5. 小结

到这期为止,Python 入门篇内容就全部结束了。

我们先是从 Python 的语言特性,基本数据类型到 Python 常用操作,到本期内容的 Web 开发,相信一起走完的同学可以开始上手工作了。

后面,我们会结合 Python 语言的数据处理能力,一起和大家学一些 GitHub 上的高 Star 项目。比如股票处理,游戏开发,还有其它和 AI 大模型相关的应用。

敬请期待!

---------------------------END---------------------------

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上时代呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

感兴趣的小伙伴,赠送全套PythonGPT改写,包含面试题、简历资料等具体看下方。 👉CSDN大礼包🎁:全网最全《PythonGPT改写》GPT改写赠送🆓!(GPT改写,GPT改写)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试宝典

简历模板 👉CSDN大礼包🎁:全网最全《PythonGPT改写》GPT改写赠送🆓!(GPT改写,GPT改写)

若有侵权,请联系删除

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值