python 学习 (三)----文件操作、RESTful

1.单引号

python中不区分单引号和双引号,与shell脚本不一样。

2.Python 模块(Module)

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。可以认为是变量、函数、类这些工具的“工具箱”,模块时可以被其它模块所使用的。

模块定义好后,我们可以使用 import 语句来引入模块;此时调用模块中的变量、函数、类需要在前面加上模块名和点符号,即模块名.变量、模块名.函数名()、模块名.类名()。

Python 的 from 语句是让你从模块中导入一个指定的部分到当前命名空间中;直接使用变量、函数、类,无需指明模块名。

3.文件操作

Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。我们写入文件内容时,系统并不会立刻就把所有数据写入到磁盘,它是先放到内存中缓存,等到空闲的时候再慢慢写入到磁盘。当调用close()方法时,系统才能保证把剩余没有写入的数据全部写入到磁盘。假如我们忘记调用了close()方法,那很可能导致我们的数据遗失。

open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。

open(file, mode='r')

完整的语法格式为:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

 mode:决定了打开文件的模式:只读,写入,追加等。mode 可以是 'r' 如果文件只读, 'w' 只用于写 (如果存在同名文件则将被删除), 和 'a' 用于追加文件内容; 所写的任何数据都会被自动增加到末尾. 'r+' 同时用于读写。 mode 参数是可选的; 'r' 将是默认值。

下图总结了这几种模式

 

 

由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现:

try:
    f = open('/path/', 'r')
    print(f.read())
finally:
    if f:
        f.close()

每次打开后都要显式调用close(),这么写实在太繁琐,Python引入了with语句来自动帮我们调用close()方法:

with open('demo.text', 'w') as f:            
    print(f.write('demo'))

 主要时通过格式的缩进行来实现的,当with下一行出现缩进行,就会自动调用close()方法

注意:在Windows 系统中,路径 中有\,为防止转移, 前面添加个r,例如

with open(r'C:\testpy\demo.text', 'w') as f:            
    print(f.read())

 4.Restful 前后端分离

 REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义,是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多的采用。

RESTFUL特点:
(1)每一个URI代表1种资源;
(2)客户端使用GET、POST、PUT、DELETE4个表示操作方式的动词对服务端资源进行操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源;
(3)通过操作资源的表现形式来操作资源;
(4)资源的表现形式是XML或者HTML;
(5)客户端与服务端之间的交互在请求之间是无状态的,从客户端到服务端的每个请求都必须包含理解请求所必需的信息。

如果一个架构符合REST原则,就称它为RESTful架构。

要理解RESTful架构,需要先理解Representational State Transfer这个词组的意思,它的每一个词代表了什么涵义。

资源(Resources)

REST的名称"表现层状态转化"中,省略了主语。"表现层"其实指的是"资源"(Resources)的"表现层"。所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或独一无二的识别符。所谓"上网",就是与互联网上一系列的"资源"互动,调用它的URI。

表现层(Representation)

"资源"是一种信息实体,它可以有多种外在表现形式。我们把"资源"具体呈现出来的形式,叫做它的"表现层"(Representation)。比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现。URI只代表资源的实体,不代表它的形式。严格地说,有些网址最后的".html"后缀名是不必要的,因为这个后缀名表示格式,属于"表现层"范畴,而URI应该只代表"资源"的位置。它的具体表现形式,应该在HTTP请求的头信息中用Accept和Content-Type字段指定,这两个字段才是对"表现层"的描述。

状态转化(State Transfer)

访问一个网站,就代表了客户端和服务器的一个互动过程。在这个过程中,势必涉及到数据和状态的变化。互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

针对不同操作,服务器向用户返回的结果应该符合以下规范。

GET /collection:返回资源对象的列表(数组)
GET /collection/resource:返回单个资源对象
POST /collection:返回新生成的资源对象
PUT /collection/resource:返回完整的资源对象
PATCH /collection/resource:返回完整的资源对象
DELETE /collection/resource:返回一个空文档

以Flask-RESTful为例,主要构建步骤:

step 1.创建api对象;

step 2.定义resource的子类(特别是子类的方法);

step 3.绑定路由;

step 4.app启动(app.run())。

5.Postman

Postman是一种网页调试与发送网页http请求的chrome插件。是一个很强大的 API调试、Http请求的工具,可以用来很方便的模拟get或者post或者其他方式的请求来调试接口。

6.requirements.txt

python项目项目中包含一个requirements.txt,主要是用来记录所有依赖包及其版本号,在新环境部署时使用,特别时跨平台部署(Windows<==>Linux).

requirements.txt可以通过pip命令自动生成和安装。

生成requirements.txt文件:

pip freeze > requirements.txt

安装requirements.txt依赖:

pip install -r requirements.txt

 

学习转载

1.Python File(文件) 方法

https://www.runoob.com/python/file-methods.html

2.Python3 输入和输出

https://www.runoob.com/python3/python3-inputoutput.html

3.python3 文件操作with open()方法用法解析

https://www.jianshu.com/p/7e81de91714b

4.https://www.bilibili.com/video/BV1TJ411Y7JX?p=138&spm_id_from=pageDriver

5.理解RESTful架构 Restful API设计指南

https://www.cnblogs.com/alex3714/articles/6808013.html

6.https://www.bilibili.com/video/BV1TJ411Y7JX?p=425

posted @ 2021-09-08 22:50  东山絮柳仔  阅读(302)  评论(0编辑  收藏  举报