用python构建api的简单方法

funcserver的Python项目详细描述


Build StatusPyPI version

用Python构建api的简单方法

funcserver实现web可访问服务器托管的抽象 任何一种功能。这是建立在龙卷风核心和支持 使用基于web的python终端制作与服务器交互 调试维护方便此外,由 可以从Web界面中查看进程。

Image

图像

安装

pip install funcserver

用法

基本示例

下面是实现最基本功能的代码 服务器。

fromfuncserverimportServerif__name__=='__main__':Server().start()

通过执行来运行它

python example.py run --debug

此服务器现在已启动并在默认端口9345上侦听 命令。您可以通过访问 http://localhost:9345/console

如果要在其他端口启动,请执行

python example.py run --port <port no>

在控制台中要做的事情

The Web UI console and logs are enabled only when the ^{tt1}$ option is provided.
# see the objects available in the console env>>>dir()# write a message to log (open the log tab in a new browser window# to see the logged message being echoed back). you can use the log# tab to observe all the logs being written by the application.>>>server.log.warning('something is happening')# set a different log level>>>server.log.setLevel(logging.DEBUG)# you can import any python module here>>>importdatetime

计算服务器(另一个示例)

您将在examples/calledcalc__server.py中找到一个示例脚本。

python examples/calc_server.py

要使用服务器的功能,请运行提供的示例客户机 在examples/目录中编写脚本

python examples/calc_client.py

使用pdb

进行调试

当需要使用python调试器调试api代码时 可能必须从基于web的python控制台触发api函数。 但是由于funcserver的设计,pdb在 场景(作为python捕获输出的结果 FuncServer的解释部分)为了解决这个问题 已以可用的“调用”实用函数的形式提供 在python控制台名称空间中用法如下所示。

假设您在代码中设置了pdb跟踪,如下所示:

defsome_api_fn(self,a,b):importpdb;pdb.set_trace()c=a+breturnc

如果按如下方式调用此api函数,则调试将不起作用 并且api调用将从控制台阻塞

>>>api.some_api_fn(10,20)

相反,请执行以下操作:

>>>call(lambda:api.some_api_fn(10,20))

现在pdb控制台将出现在您启动 服务器

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
由于java的原因,maven无法运行代码。lang.NoClassDefFoundError:com/fasterxml/jackson/annotation/JsonMerge   Android项目中的java Creative SDK图像编辑器UI   java如何在Android Studio中使用DataOutputStream上传文件并将其他参数传递到web服务器   java倒计时服务打开时崩溃   java将RubyonRails项目转换为JRubyonRails项目   java我的图库意图是不显示图像?为什么?   java如何在春季启动时跳过mongodb/   java@Autowired在Spring中是如何实现的   甲骨文Akka java。util。同时发生的timeoutexception线程池频繁超时   java maven依赖项对spring启动应用程序有何影响?   java Firestore执行复合查询,未截获事件“已修改”   java ItemStreamException:未能初始化读取器,原因是:IllegalStateException:流已初始化。重新开放前关闭   java将空标记解组到集合的新实例中   使用AspectJ的java新手:无法调用aspect   java查找棋类游戏的所有组合   你为什么要这样做and==与Java中的equals方法不一样吗?   如何对使用JavaUUID的代码进行单元测试?