源码阅读-pyspider源码阅读2 app.py
本次阅读内容为web UI模块下的app.py,这是一个用flask部署的完整后端
涉及概念整理
- os.name返回当前操作系统类型,当前只注册了三个值:posix,nt,java。对应linux/windows/java虚拟机
- @property装饰器主要作用是将一个函数设置成只读对象
@property def x(self): return self._x
等价于
def getx(self): return self._x x = property(getx)
这上面可以看出,@property修饰的相当于一个getter方法。 下面可以看到这个装饰器还内置了setter方法,birth可以修改,age是只读属性
class Student(object): @property def birth(self): return self._birth @birth.setter def birth(self, value): self._birth = value @property def age(self): return 2014 - self._birth
- jinja
Jinja2是为python提供的一个功能齐全的模板引擎。Jinja2提供了对unicode的全支持,以及一个可选集成的沙盒运行环境。它使用BSD协议。设计思想来源于Django引擎,增加了安全性。Flask使用jinja2作为框架的模版框架。
-
from six.moves import builtins
Python3中命名为builtins
,Python2中为__builtin__
存放了Python的内建函数 使用dir(builtins)
可查看 - WebDAV 基于Web的分布式编写和版本控制(WebDAV)是超文本传输协议(HTTP)的扩展,有利于用户间协同编辑和管理存储在万维网服务器文档。 简而言之,就是让客户能用客户端(浏览器)在服务器进行文件交换和共享
脉络
run.py
中调用的是run()函数 可以看到在其中进行了一系列的配置。本地端口,服务器名字,还有自检模式等。