python服务器。重新设计。

reserve的Python项目详细描述


reserve是一个genericpython服务器(和服务器库)。这意味着它能够托管任何类型的应用程序,而不仅仅是像web这样的wsgi应用程序。

要求:

  • sdlaunch-reserve不包含套接字打开或守护代码,这取决于sdlaunch(或者您可以使用systemd socket activation)
  • fdsocket-python的sockets在从文件描述符创建它们时,要求用户提供一些python无法获得的信息,但很容易从c获得。fdsocket提供了这些信息。

用法

sdlaunch -b "[::]:80" -- reserve app [args...]

其中:

  • ::是要侦听的IPv6地址(::表示全部)
  • 80是端口
  • app是要服务的应用程序的名称
  • [args...]是要传递给应用程序的参数列表(可选)

应用程序定义

应用程序是一个包含launch(args)callable的python模块,其中args是字符串数组。

它应该返回一个可调用的请求处理程序-handle(socket, client_address, server),其中:

  • socket是新打开的套接字
  • client_address是包含客户端IP和端口的元组
  • server是一个tcpserver对象,您可能不应该触摸它

捆绑应用程序

reserve当前仅捆绑一个reserve app-http。它与wsgi子应用程序一起可用于服务WSGI应用程序

用于编写http子应用程序的API目前没有文档记录,被认为是一个实现细节你不应该使用它,因为它可能在将来的任何时候都会改变。不过,您可以将它与wsgi-一起使用,因为它保证保持向后兼容。

提供wsgi应用程序

sdlaunch -b "[::]:80" -- reserve app http wsgi wsgi-app-name [args...]

其中wsgi-app-name是一个python模块,它包含一个launch(args)可调用(类似于普通的reserve应用程序)

它应该返回一个可调用的wsgi(pep 3333)应用程序。

警告:不应在生产中使用reserve.http。您应该将应用程序作为SCGI/FCGI/…来使用,而应该使用真正的web服务器作为前端

reserve目前不支持scgi/fcgi/…,但在不久的将来会支持。

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

推荐PyPI第三方库


热门话题
java搜索具有外键的JPA实体的约定是什么?   java事务没有使用事务和嵌套方法的2个实例回滚   SpringBootJavaMessageFormat。使用umlauts格式(ä/ö/ü)   java如何通过字符串在sqlite中搜索列   JAVAlang.ClassNotFoundException:org。冬眠Hibernate4的例外情况   java消息正文在Gmail中被弄乱了   java Apache Ignite未使用空值更新缓存   Java正则表达式未捕获组   java onBackPressed();除非我叫super否则不行。onBackPressed();两次密码   java CustomAlertDialog在删除数据库记录后未完成其进程   C++中的迭代器(Stl)与java,是否存在概念上的区别?   Java在不知道字符编码的情况下将字节[]转换为字符串   来自本地WSDL文件的java Web服务客户端   java工具可用于在一个位置聚合所有项目相关信息   java在Netbeans中的maven项目中设置依赖项