经典视图 api.py
源码分析
第一个层次,核心逻辑有模块 sessions.py 实现,为方便使用,对外提供接口,对应HTTP协议的方法
第二个层次,涉及局部代码层次结构时,会有一个通用底层代码,如request,然后再此基础上构建上层代码,如get post

# 局部底层代码
def request(method, url, **kw):pass
def get(url, params=None, **kw):pass # 获取
def options(url, **kw):pass # 询问url支持的方法
def head(url, **kw):pass # 确定url的有效性
def post(url, data=None, json=None, **kw):pass # 新增
def put(url, data=None, **kw):pass # 整体更新
def patch(url, data=None, **kw):pass # 局部更新
def delete(url, **kw):pass # 删除
def request(method, url, **kwargs):
with sessions.Session() as session:
return session.request(method=method, url=url, **kwargs)
# with 上下文管理器触发的是类Session对应内置方法
def __enter__(self):
return self
def __exit__(self, *args):
self.close()
# 执行顺序为:
# 执行__enter__返回self作为as中的session
# 执行session.request(method=method, url=url, **kwargs)
# 执行__exit__ session.close()
request外部接口函数的参数与session.request绑定方式是一致,详情见 逻辑实现层sessions.py
项目实践
partial偏函数
把一个函数的某些参数设置默认值,返回一个新的函数,调用这个新函数会更简单些
import functools
def show_arg(*arg, **kw):
print(arg, kw)
show_arg(1, 2, 3, a='a', b='b', c='c')
show1 = functools.partial(show_arg, 1, 2, 3)
show1(a='a', b='b', c='c')
show2 = functools.partial(show_arg, a='a', b='b', c='c')
show2(1, 2, 3)
程序局部结构
实际项目开发时经常是前后端分离开发,对于后端避免不了API的开发,如何构建程序结构
package
|-views # 对外展示接口函数
|-ops # 内部实现逻辑
|-models # 存储模型
Last updated