第1章 认识FastAPI
在正式使用FastAPI框架编写代码前,需要读者先了解一下Web的一些基础知识。如果没有接触过这些基础知识,则可以在网上搜索这些知识的关键字,如“HTML”,学习它的一些基本功能的使用,这样更有利于本书后续的学习。对于Python语言的掌握是学习本书的前提条件。
本章提供了FastAPI安装、FastAPI框架构成等入门知识,为后续知识的学习提供基本条件。
本书主要通过PyCharm代码开发工具,进行代码编写和调试,所以先要安装该工具,然后掌握该工具基本的使用功能。
本章的主要内容为:
(1)Web基础知识;
(2)初识FastAPI;
(3)Hello三酷猫;
(4)FastAPI框架构成;
(5)PyCharm代码编辑工具。
本节为初学者提供学习FastAPI时需要了解的Web基础知识,以方便后续学习,如果已经具备Web相关基础知识,可以跳过本节,直接学习下节内容。
1.1.1 Web简介
Web(World Wide Web,WWW)翻译为中文叫全球广域网或万维网,俗称网站(WebSite),它是一种基于超文本(Hyper text)、超媒体(Hyper media)、超文本传输协议(HTTP)建立在Internet上的分布式信息服务系统。普通用户可通过浏览器的网址(WebSite Address)访问对应网站。
1. 网站
网站为访问者提供各种各样的栏目信息,这些信息在格式上包括了文本、图片、视频、声音、动画等。
如图1.1所示为新浪网站的主界面,为访问者提供了各种各样的栏目信息,如个人内容共享的微博、大量的广告信息等。人们通过电脑上的浏览器(Browser),就可以轻松访问该网站。
作为本书的读者,不是简单地访问一个网站,而是要深入了解网站的技术原理,掌握技术内容,从而学会自己构建网站。
图1.1 新浪网站
(1)超文本。
超文本主要指带有超链接的、特定文本组织格式的电子文档。如网页在显示相应格式内容的同时,可以内嵌其他网页的链接,点一下就可以进入其他网页。
网页的主要超文本格式使用了超文本标记语言(Hyper Text Markup Language,缩写:HTML)。在新浪网站上随意打开一个网页,在其上点击鼠标右键,选择弹出菜单的“查看源代码”选项,就可以看到相应的超文本格式代码,如图1.2所示。
(2)超媒体。
超媒体是超文本和多媒体在浏览器环境下的结合结果,为浏览的网页提供了图片、动画、声音、视频等效果。实现过程就是把上述媒体文件,以超文本指定格式链接到网页上并展现出来。
(3)超文本传输协议。
超文本传输协议是浏览器访问网站的简单的请求、响应协议。通过该协议,实现了从浏览器端发送访问信息到网站,网站再把相应的网页信息发送回浏览器端的信息传输过程。
图1.2 网页上的HTML超文本代码(部分)
在浏览器里通过网址访问网站,实质上是发送HTTP请求。HTTP分9种请求方式,如表1.1所示。
表1.1 HTTP的9种请求方式
序号 请求方式 功能说明
1 GET 请求指定资源地址的网页信息,并返回实体数据
2 HEAD 与GET请求类似,返回的响应中没有具体内容,用于获取响应头数据
3 POST 向指定资源地址提交数据进行处理请求(如提交表单、上传文件)
4 PUT 向指定资源地址上传数据内容(从浏览器端向服务器端传送数据取代指定的文档内容)
5 DELETE 向指定资源地址发送删除资源的请求
6 CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
7 OPTIONS 获取服务器针对特定资源所支持的HTML请求方法
8 TRACE 回复并显示服务器收到的请求,用于测试和诊断
9 PATCH 是对PUT方法的补充,用来对已知资源进行局部更新
表1.1中最常用的请求方式为GET和POST。
如在新浪网上点击一个网页上的链接,可以看作是一个GET请求方式的发生,它根据HTTP协议去网站获取指定的数据(如另外一个带数据的网页),并把数据返回到浏览器上,通过网页跳转在新页面上显示出来。
又如在新浪登录页面输入用户名、密码后,将此数据提交给网站,这个提交开始的请求方式是POST。提交成功后返回成功状态数据,并转入登录成功的新页面。
2. 网站的构成
网站由一个个网页(Web Page)构成。由此,程序员需要设计各种各样的网页,然后通过网站框架把它们组织起来,供不同的用户使用。
从程序员或网站管理员角度来看,网站分前端和后端。前端就是通过浏览器可以访问的网页功能和内容,主要供网站访问者使用;后端就是信息发布管理系统,包括了登录网站用户信息的管理、使用功能权限的管理、栏目信息的编辑与发布、发布内容的统计、网站访问量统计等。
3. 因特网(Internet)
Internet,也称国际互联网,其将全球各大洲主要网络链接在一起,是提供信息共享与服务的世界上最大的信息资源网络。
Internet主要由通信链路、服务器、域名、路由设备、信息软件(网站、浏览器、通讯社交软件等)、个人终端组成,如图1.3所示。
图1.3 Internet
(1)通信链路包括有线链路、无线链路。有线链路包括国际跨洋海底光缆、国家骨干光纤通道、城市光纤通道、小区楼宇通信线路等;无线链路包括卫星通信链路、无线通讯发送站、家庭无线网络等。这些都是保证数据顺利传输的通信线路。
(2)服务器是用于安装网站等软件系统的专用计算机,也是程序员把开发好的网站进行部署并运行的实际位置。同时服务器用来存储海量的信息数据,包括各种文件、数据库等。另外,DNS(Domain Name Server,域名服务器)服务器提供域名、IP地址转换统一管理功能。
(3)域名(Domain Name)又叫网域,是Internet上由一串用点分隔的名字组成的某一台服务器或服务器组的名称,用于在数据传输时对服务器的定位标识。其格式如下:
www.<用户名>.<二级域名>.<一级域名>
如,新浪的域名为www.sina.com.cn,“www”代表万维网,“sina”为用户名,“com”为二级域名,“cn”为一级域名,它们之间用点号分隔。“com”用于工商金融企业,“cn”代表中国,为China的缩写。由此,部署完成的网站要正式运行,必须先向域名服务商申请域名,并进行备案。
(4)路由设备则为普通用户通过浏览器访问不同地方的服务器提供了网址寻址、转发数据的功能。
(5)信息软件,在本书中就是指网站。
(6)个人终端主要包括了台式电脑及浏览器、手机终端及浏览器、平板电脑及浏览器等。
·········