4.8k 4 分钟

# 网络数据采集概述 爬虫(crawler)也经常被称为网络蜘蛛(spider),是按照一定的规则自动浏览网站并获取所需信息的机器人程序(自动化脚本代码),被广泛的应用于互联网搜索引擎和数据采集。使用过互联网和浏览器的人都知道,网页中除了供用户阅读的文字信息之外,还包含一些超链接,网络爬虫正是通过网页中的超链接信息,不断获得网络上其它页面的地址,然后持续的进行数据采集。正因如此,网络数据采集的过程就像一个爬虫或者蜘蛛在网络上漫游,所以才被形象的称为爬虫或者网络蜘蛛。 # 爬虫的应用领域 在理想的状态下,所有 ICP(Internet Content Provider)都应该为自己的网站提供...
687 1 分钟

# 用 FastAPI 开发网络数据接口 FastAPI 是一个用于构建 API(网络数据接口)的现代、高性能的 Web 框架,基于 Python 3.6+,使用了 Python 中的类型提示进行类型检查,非常符合工程化开发的需求,在业界有非常好的口碑。下面,我们先用代码告诉大家 FastAPI 到底能做什么,然后再来讲解它的方方面面。 # FastAPI 五分钟上手 安装依赖库和 ASGI 服务器(支持异步 I/O 的 Python 服务器)。 pip install fastapi pip install uvicorn 编写代码 main.py 。 from fastapi...
5.5k 5 分钟

# 接入三方平台 在 Web 应用的开发过程中,有一些任务并不是我们自己能够完成的。例如,我们的 Web 项目中需要做个人或企业的实名认证,很显然我们并没有能力判断用户提供的认证信息的真实性,这个时候我们就要借助三方平台提供的服务来完成该项操作。再比如说,我们的项目中需要提供在线支付功能,这类业务通常也是借助支付网关来完成而不是自己去实现,我们只需要接入像微信、支付宝、银联这样的三方平台即可。 在项目中接入三方平台基本上就两种方式:API 接入和 SDK 接入。 API 接入指的是通过访问三方提供的 URL...
5.4k 5 分钟

# 使用缓存 通常情况下,Web 应用的性能瓶颈都会出现在关系型数据库上,当并发访问量较大时,如果所有的请求都需要通过关系型数据库完成数据持久化操作,那么数据库一定会不堪重负。优化 Web 应用性能最为重要的一点就是使用缓存,把那些数据体量不大但访问频率非常高的数据提前加载到缓存服务器中,这又是典型的空间换时间的方法。通常缓存服务器都是直接将数据置于内存中而且使用了非常高效的数据存取策略(哈希存储、键值对方式等),在读写性能上远远优于关系型数据库的,因此我们可以让 Web 应用接入缓存服务器来优化其性能,其中一个非常好的选择就是使用 Redis。 Web 应用的缓存架构大致如下图所示。 #...
3.9k 4 分钟

# RESTful 架构和 DRF 进阶 除了上一节讲到的方法,使用 DRF 创建 REST 风格的数据接口也可以通过 CBV(基于类的视图)的方式。使用 CBV 创建数据接口的特点是代码简单,开发效率高,但是没有 FBV(基于函数的视图)灵活,因为使用 FBV 的方式,数据接口对应的视图函数执行什么样的代码以及返回什么的数据是高度可定制的。下面我们以定制学科的数据接口为例,讲解通过 CBV 方式定制数据接口的具体做法。 # 使用 CBV # 继承 APIView 的子类 修改之前项目中的 polls/views.py ,去掉 show_subjects 视图函数,添加一个名为...
9.5k 9 分钟

# RESTful 架构和 DRF 入门 把软件(Software)、平台(Platform)、基础设施(Infrastructure)做成服务(Service)是很多 IT 企业都一直在做的事情,这就是大家经常听到的 SasS(软件即服务)、PasS(平台即服务)和 IasS(基础设置即服务)。实现面向服务的架构(SOA)有诸多的方式,包括 RPC(远程过程调用)、Web Service、REST 等,在技术层面上,SOA 是一种抽象的、松散耦合的粗粒度软件架构;在业务层面上,SOA 的核心概念是 “重用” 和...
4.1k 4 分钟

# 前后端分离开发入门 在传统的 Web 应用开发中,大多数的程序员会将浏览器作为前后端的分界线。将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器为前端提供业务逻辑和数据准备的所有代码统称为后端。所谓前后端分离的开发,就是前后端工程师约定好数据交互接口,并行的进行开发和测试,后端只提供数据,不负责将数据渲染到页面上,前端通过 HTTP 请求获取数据并负责将数据渲染到页面上,这个工作是交给浏览器中的 JavaScript...