HTTP通信过程这是一条绝对URI（统一资源标识符）的标准格式：http://user:pass@www.example.com:80/dir/index.htm?uid=1#ch1user:pass：用户认证信息；/dir/index.htm:文件路径；uid=1:查询字符串；ch1:片段标识符URL（统一资源定位器）是其中的一部分，它定义了重要的请求类型和资源路径，下面以GET类型请求和响应为例：# 请求 GET /dir/index.htm HTTP/1.1 Host: www.example.com Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 16# 响应 HTTP/1.1 200 OK Date: Tue, 10 Jul 2012 06:50:15 GMT Content-Length: 362 Content-Type: text/html ...HTTP/1.1支持的请求方法请求动词描述操作类型应用场景举例GET获取资源SELECTGET /users 获取所有用户POST创建资源CREATEPOST /users 创建一个新用户PUT全局更新UPDATEPUT /users/123 替换该用户的所有信息PATCH局部更新UPDATEPATCH /users/123 仅更新用户的密码DELETE删除资源DELETEDELETE /users/123 删除该用户............HTTP状态码JSON、DictJSON与字典都是键值对组成，JSON中键只能是字符或字符串，字典的键必须是可哈希（不可变，即对应的内存地址唯一）的对象，如：字符串、数字、元组，目的是为了高效查询，时间复杂度O(1)router_table = { ("GET", "/api/users"): get_all_users_function, ("POST", "/api/users"): create_user_function, ("GET", "/api/articles"): get_articles_function }FastAPI成熟的API框架内部都是先通过正则表达式解析HTTP的请求报文，根据请求类型和资源路径调用后端函数，常见与数据库交互；然后将函数返回值以JSON格式返回，回填进响应报文发送给客户端。以FastAPI为例：app = FastAPI() @app.get("/api/users") def get_all_users(): ... result = [{"id": row[0], "name": row[1], "role": row[2]} for row in rows] return result
__init__()初始化常量、变量self1、指代实例对象2、类中的内部方法不一定需要使用self，此时标准的写法是：@staticmethod类的内部方法的外部调用1、调用的类中的方法含有self，必须先建立一个实例对象obj = classname()2、无初始化的类、初始化的类中的方法没有self，classname.method()修饰器修饰器作为一种不改变函数功能的语法糖，但是起到了状态隔离的作用，避免全局变量影响