标签: wsgi

如何使用 WSGIREF 捕获 POST

我正在尝试从简单的表单中捕获 POST 数据。

这是我第一次使用 WSGIREF,我似乎找不到正确的方法来做到这一点。

This is the form:
<form action="test" method="POST">
<input type="text" name="name">
<input type="submit"></form>
Run Code Online (Sandbox Code Playgroud)

并且该函数显然缺少正确的信息来捕获帖子:

def app(environ, start_response):
    """starts the response for the webserver"""
    path = environ[ 'PATH_INFO']
    method = environ['REQUEST_METHOD']
    if method == 'POST':
        if path.startswith('/test'):
            start_response('200 OK',[('Content-type', 'text/html')])
            return "POST info would go here %s" % post_info
    else:
        start_response('200 OK', [('Content-type', 'text/html')])
        return form()
Run Code Online (Sandbox Code Playgroud)

python wsgi wsgiref

3
推荐指数
1
解决办法
3396
查看次数

发送不更改用户当前页面的 HTTP 响应

我有一个 JavaScript 书签,当用户位于其他页面(即我的服务器上没有页面)时,它会将信息发布到(Flask 支持的)服务器。我不想通过我的服务器响应劫持用户的会话来中断用户的浏览。

我最初的想法是我可以以某种方式抑制 Flask 的 HTTP 响应;阻止它向客户端发送任何内容,这样它们就不会被神秘地重定向。我希望我可以通过从视图返回空值来做到这一点。

然后我想这可能是一些 HTTP 响应,让客户端知道信息已成功提交,但会将客户端留在当前页面。假设标题值类似于“这是您请求的结果,但您不应更改当前显示”?

python wsgi httpresponse flask

3
推荐指数
1
解决办法
1008
查看次数

热重载 gevent WSGIServer

我有一个Flaskgevent.WSGIServer. 为了获得流畅的开发体验,我希望启用热重载,例如,如果磁盘上加载的 python 文件发生变化,我希望服务器重新加载。由于我使用的 SSE 事件必然会阻止请求,因此我无法运行原本非常好的 Flask 内置调试​​服务器。在生产中我不想热重载。

我找到了@run_with_reloader装饰器,但是 1)在代码注释中,作者建议不要使用此函数,2)当我的主 py 文件中的任何函数具有此装饰器时,热重载始终处于启用状态,无论该函数是否被调用。

如何在开发过程中热重载gevent.WSGIServer

python wsgi gevent

3
推荐指数
1
解决办法
2307
查看次数

如何使用 HTTPS 在 CherryPy WSGI 服务器 (Cheroot) 上运行 Flask 应用程序?

我现在使用 HTTP 在 CherryPy Cheroot WSGI 服务器上运行 Python 2.7 Flask 应用程序,如下所示。

from cheroot.wsgi import Server as WSGIServer
from cheroot.wsgi import PathInfoDispatcher as WSGIPathInfoDispatcher

from MyFlaskApp import app

d = WSGIPathInfoDispatcher({'/': app})
server = WSGIServer(('0.0.0.0', 80), d)

if __name__ == '__main__':
   try:
      server.start()
   except KeyboardInterrupt:
      server.stop()
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能从这里转移到 HTTPS?我找到了以下说明,但它似乎不适用于我的应用程序。

from cheroot.server import HTTPServer
from cheroot.ssl.builtin import BuiltinSSLAdapter

HTTPServer.ssl_adapter = BuiltinSSLAdapter(
        certificate='cert/domain.crt', 
        private_key='cert/domain.key')
Run Code Online (Sandbox Code Playgroud)

我可以将上述示例应用到 Cheroot 上的 Flask 应用程序吗?如果没有,Cheroot 上用于 HTTPS 的 Flask 应用程序的简单示例是什么?

wsgi cherrypy flask python-2.7 cheroot

3
推荐指数
1
解决办法
4547
查看次数

为什么我们需要用gunicorn来部署Django?

我们可以简单地启动一个Django server1python manage.py runserver 8080那么为什么我们需要server2像这样部署Django呢gunicorn myproject.wsgi?我在 google 上搜索了一下wsgi,它说wsginginx 和 Django 之间有连接,但令我困惑的是我们可以发出 http 请求(就像使用 postman 一样)server1并且一切正常。那么有什么区别呢?

django wsgi web

3
推荐指数
1
解决办法
1967
查看次数

IIS下运行FastAPI

目前,我有一个简单的 API,在某个内部 IIS 站点的子目录下与 Flask 一起运行。现在我认为使用 FastAPI 重写该 API 可能是个好主意。在 IIS 上运行 API 并不是一件难事,您必须web.config在 IIS 配置中创建一些内容。我知道这是使用 WSGI,但是也有可能使用 ASGI(也许与 uvicorn 和 Gunicorn 结合使用)?

重要的一件事是它必须在某个子目录下运行,称之为<iis_internal_company_server>/myapi。在 Flask 中,我包含了一个众所周知的前缀中间件,它可以按预期工作。我正在寻找类似的 FastAPI,这是否可以使用app.include_router(router, prefix='/myapi')

做了一些研究但没有找到解决方案。也许你们中的一个人对此有一些经验。如果有,请分享。提前谢谢了。

问候,托马斯

python iis wsgi asgi fastapi

3
推荐指数
1
解决办法
8229
查看次数

*在Google App Engine中处理请求后执行操作*

一旦我的应用程序发送了回复,我希望GAE做一些其他事情.

处理程序看起来像这样:

class FooHandler(webapp.RequestHandler):
    def post(self):
        self.response.out.write('Bar')
        send_response()     # this is where I need help!
        do_something_else() # at this point, the response should have been sent
Run Code Online (Sandbox Code Playgroud)

万一你想知道我为什么要这样做:

我需要类似线程的行为,这是GAE的沙盒环境所不允许的.因此,一个函数发送几个请求,而不关心响应.每个请求都会启动一个耗时的操作(获取资源)并将结果保存到数据存储区中,第一个函数可以使用它.

注意:请求处理程序必须发送响应.如果你不提供任何,它将等待post函数完成然后返回默认标题(当然这不是我正在寻找的行为)

如果这可以帮助,解决方案可能是使用自定义wsgi middeleware,但我不知道它是如何工作的(还)...

python google-app-engine wsgi

2
推荐指数
1
解决办法
255
查看次数

CherryPy和并发

我正在使用CherryPy来通过WSGI为python应用程序提供服务.

我尝试对它进行基准测试,但似乎CherryPy只能处理10 req/sec.不管我做什么.

构建一个简单的应用程序,暂停3秒,以准确确定发生了什么......我可以确认10 req/sec与python脚本使用的资源无关.

__

有任何想法吗?

python concurrency wsgi cherrypy

2
推荐指数
1
解决办法
1万
查看次数

在龙卷风下运行金字塔WSGI应用程序

Pyramid使用它自己的Waitress Web服务器进行开发,但我想在Tornado下提供我的WSGI应用程序.我想我应该使用pserve .ini文件来配置它,但我无法让它工作

python wsgi tornado pyramid waitress

2
推荐指数
1
解决办法
2985
查看次数

WSGI应用程序中的pyc文件有什么好处,每周多次部署?

似乎越来越频繁,我有点pyc文件运行过时的代码.

这导致部署脚本每次擦除*.pyc,否则部署似乎不会生效.

我想知道,在长期运行的WSGI应用程序中,pyc文件有什么好处(如果有的话)?据我所知,唯一的好处是改善了启动时间,但我无法想象它的重要性 - 即使它是,每次部署新代码时,你都无法真正使用旧的pyc文件.

这让我觉得最好的做法是运行带有PYTHONDONTWRITEBYTECODE环境变量集的WSGI应用程序.

我错了吗?

python django wsgi pyc

2
推荐指数
1
解决办法
507
查看次数