zdppy_api框架快速入门

2023-12-30 10:52
文章标签 入门 快速 框架 api zdppy

本文主要是介绍zdppy_api框架快速入门,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

概述

zdppy_api是一款为了快速开发而生的,基于异步的,使用简单的Python后端API接口开发框架。
本框架的目标是让Python后端开发变得越来越简单,直到发现原来还可以更简单!
一切都是为了提高开发效率!!!

响应文本

服务端:

from api import resp, Api# 创建应用
app = Api(routes=[resp.text_route("/", "你好,张大鹏")])if __name__ == '__main__':import uvicornuvicorn.run("server:app")

客户端:

import reqprint(req.get('http://127.0.0.1:8000/').text)

响应JSON

服务端:

from api import resp, Api# 创建应用
app = Api(routes=[resp.json_route("/", {"msg": "你好,张大鹏"})])if __name__ == '__main__':import uvicornuvicorn.run("server:app")

客户端:

import reqprint(req.get('http://127.0.0.1:8000/').json())

响应文件

准备data/test.txt文件:

a
b
c
123

服务端:

from api import resp, Api# 创建应用
app = Api(routes=[resp.dir_route("/", "data")])if __name__ == '__main__':import uvicornuvicorn.run("server:app")

客户端:

import reqprint(req.get('http://127.0.0.1:8000/test.txt').text)

获取查询参数

服务端:

from api import req, resp, Apiasync def index(request):"""生成路由方法"""name = req.get_query(request, "name")return resp.json({"name": name})# 创建应用
app = Api(routes=[resp.route("/", index)])if __name__ == '__main__':import uvicornuvicorn.run("server:app")

客户端:

import reqprint(req.get('http://127.0.0.1:8000/?name=zhang大鹏').json())

获取路径参数

服务端:

from api import req, resp, Apiasync def index(request):"""生成路由方法"""a = req.get_path(request, "a")b = req.get_path(request, "b")c = req.get_path(request, "c")d = req.get_path(request, "d")return resp.json({"a": a, "b": b, "c": c, "d": d})# 创建应用
app = Api(routes=[resp.route("/{a}/{b:int}/{c:float}/{d:path}", index)])if __name__ == '__main__':import uvicornuvicorn.run("server:app")

客户端:

import reqprint(req.get('http://127.0.0.1:8000/hello/11/22.22/33/44.txt').json())

获取请求头参数

服务端:

from api import req, resp, Apiasync def index(request):"""生成路由方法"""token = req.get_header(request, "Token")user_agent = req.get_header(request, "User-Agent")return resp.json({"token": token, "user_agent": user_agent})# 创建应用
app = Api(routes=[resp.route("/", index)])if __name__ == '__main__':import uvicornuvicorn.run("server:app")

客户端:

import reqheaders = {"Token": "xxx","User-Agent": "abc"
}
print(req.get('http://127.0.0.1:8000/', headers=headers).json())

获取文本类型的参数

服务器:

from api import req, resp, Apiasync def index(request):"""生成路由方法"""data = await req.get_text(request)return resp.json({"data": data})# 创建应用
app = Api(routes=[resp.post("/", index)])if __name__ == '__main__':import uvicornuvicorn.run("server:app")

客户端:

import reqheaders = {"Content-Type": "application/text"}
print(req.post('http://127.0.0.1:8000/', data="hello,world", headers=headers).json())

获取JSON数据

服务端:

from api import req, resp, Apiasync def index(request):"""生成路由方法"""data = await req.get_json(request)return resp.json({"data": data})# 创建应用
app = Api(routes=[resp.post("/", index)])if __name__ == '__main__':import uvicornuvicorn.run("server:app")

客户端:

import reqdata = {"name": "zhangsan", "age": 33}
print(req.post('http://127.0.0.1:8000/', data=data).json())
print(req.post('http://127.0.0.1:8000/', json=data).json())

文件上传

服务端:

from api import req, resp, Api# 创建应用
app = Api(routes=[resp.upload("/upload", "data")])if __name__ == '__main__':import uvicornuvicorn.run("server:app")

客户端:

import reqfiles = {"file": open("server.py")}
print(req.post('http://127.0.0.1:8000/upload', files=files).json())

这篇关于zdppy_api框架快速入门的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/552612

相关文章

Spring WebClient从入门到精通

《SpringWebClient从入门到精通》本文详解SpringWebClient非阻塞响应式特性及优势,涵盖核心API、实战应用与性能优化,对比RestTemplate,为微服务通信提供高效解决... 目录一、WebClient 概述1.1 为什么选择 WebClient?1.2 WebClient 与

SpringBoot监控API请求耗时的6中解决解决方案

《SpringBoot监控API请求耗时的6中解决解决方案》本文介绍SpringBoot中记录API请求耗时的6种方案,包括手动埋点、AOP切面、拦截器、Filter、事件监听、Micrometer+... 目录1. 简介2.实战案例2.1 手动记录2.2 自定义AOP记录2.3 拦截器技术2.4 使用Fi

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

从入门到进阶讲解Python自动化Playwright实战指南

《从入门到进阶讲解Python自动化Playwright实战指南》Playwright是针对Python语言的纯自动化工具,它可以通过单个API自动执行Chromium,Firefox和WebKit... 目录Playwright 简介核心优势安装步骤观点与案例结合Playwright 核心功能从零开始学习

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

从入门到精通MySQL联合查询

《从入门到精通MySQL联合查询》:本文主要介绍从入门到精通MySQL联合查询,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下... 目录摘要1. 多表联合查询时mysql内部原理2. 内连接3. 外连接4. 自连接5. 子查询6. 合并查询7. 插入查询结果摘要前面我们学习了数据库设计时要满

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat