- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
在我为 python 网站使用 mod_python 之前。不幸的是,mod_python 不再是最新的,所以我寻找另一个框架并找到了 mod_wsgi。
在 mod_python 中,可以有一个索引方法和其他方法。我希望有不止一页被调用。像这样:
def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
def test(environ, start_response):
status = '200 OK'
output = 'Hello test!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]
mod_wsgi 有可能吗?
解决方案:Flask 框架满足我的需求
#!/usr/bin/python
from flask import Flask
from flask import request
app = Flask(__name__)
app.debug = True
@app.route("/")
def index():
return "Hello index"
@app.route("/about")#, methods=['POST', 'GET'])
def about():
content = "Hello about!!"
return content
if __name__ == "__main__":
app.run()
最佳答案
WSGI 是 web 应用程序的通用入口点,也就是说,您在搜索 mod_wsgi 时只找到 hello world 的原因是您正在搜索 mod_wsgi 而不是实现标准的框架。
这样看,wsgi有点像洋葱。网络服务器将请求发送到您的可调用对象。有 2 个参数:environ
和 start_response
。据我所知,start_response 是将发送您的 header 的函数,environ 是存储所有参数的地方。
您可以推出自己的框架或使用 pyramid、flask 等。这些框架中的每一个都可以与 wsgi 绑定(bind)。
然后您创建一个 wsgi 中间件来处理请求。然后,您可以解析“PATH_INFO”以处理不同的可调用文件。
def my_index(environ):
response_headers = [('Content-type', 'text/plain')]
return response_headers, environ['PATH_INFO']
def application(env, st):
response = None
data = None
if environ['PATH_INFO'] == '/index':
response, data = my_index(environ)
st('200 ok', response)
return [data]
这是一个相当简单的例子,但是有了 environ,你可以做任何你想做的事。就其本身而言,wsgi 不会做任何您可能已经习惯使用 mod_python 的事情。它实际上只是用于网络服务器的 python 接口(interface)。
编辑
正如评论中的其他人所说,如果您对自己在做什么一无所知,请不要尝试自己动手。考虑使用其他框架并先详细了解它。
例如,您需要编写一种将函数绑定(bind)到 url 的正确方法。正如我在示例中所写的那样,它非常糟糕,但应该说明它是如何在后台完成的。您可以使用正则表达式处理请求以提取 ID,或使用类似于金字塔和 zope 遍历的方法。
如果你真的坚持自己动手,看看 webob 教程。
关于python网页mod_wsgi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11258326/
大中型 python WSGI 应用,Apache + mod_wsgi 还是 Nginx + mod_wsgi 用什么? 哪种组合需要更多的内存和 CPU 时间? 哪个更快? 哪个以比另一个更稳定而
我通过 python CGI 脚本 (Apache2.4) 继承了在 AWS EC2 Windows 实例和 WAMP 服务器上运行的 Web 应用程序。我希望将 Web 应用程序转换为 Flask,
当我输入: [root@lts5 /]# ldd /usr/lib64/httpd/modules/mod_wsgi.so libpython2.5.so.1.0 => /root/epd-5
我正在尝试在 Ubuntu 16.04.6 服务器上部署带有 Apache2 和 mod_wsgi 的 Django 应用程序,但我正在努力让 mod_wsgi 使用正确的 python 版本。 我从
介绍 我有一个用 python 3 编写的 Web API,它使用 flask 。当我从终端运行 Web API 时,代码运行良好,它托管在代码的以下行中。 if __name__ == '__mai
我的 Django 项目中的 MemoryError 有一个奇怪的问题。 Ubuntu 11 Apache 2 Nginx mod_wsgi python2.7 我有一个使用 PIL 调整图像大小的模
在这里撕扯我的头发试图弄清楚为什么我的两个 Django 项目没有被分开提供......似乎首先访问的静态文件成为两个项目的事实上的静态文件,或者类似的东西。 我试图通过同一个 IP 地址的两个域名为
我正在通过发出一个需要 30 多分钟才能完成的请求来测试在 Apache Web 服务器上运行的 Python Flask Web 应用程序的限制。该请求需要向 MySQL 数据库发送数千个数据库请求
有谁知道如何制作mod_wsgi当任何模块更改时自动重新加载 Flask 应用程序?我试过WSGIScriptReloading On ,但没有运气。 official documentation有点
使用 mod_wsgi 部署应用程序时出现以下错误 [Thu Apr 07 11:23:32 2011] [error] [client localhost] IOError: [Errno 13]
我有用 Django 开发的普通内容管理网站。我的客户有一个具有 256 MB RAM 的服务器。他想以 wsgi 模式部署此站点。 256 MB RAM 是否足够?我对服务器 RAM 要求等一无所知
我对 Python 和 Python Web 应用程序开发比较陌生。目前我正在使用 mod_wsgi 在 Python 中创建一个 hello world 应用程序 这是我的配置。 Apache 配置
我有一个 wsgi 应用程序作为 mod_wsgi 守护进程(在守护进程模式下)运行。我的设置是每个守护进程在 1000 个请求后重新启动,如 mod_wsgi 配置指南中所示: http://cod
我在centos系统上安装了Postgres、mod_wsgi和python3.5。我已经测试了连接,它在交互式 Python shell 和开发应用程序中都运行良好(它是一个 Pyramid 应用程
我在 Centos 6 服务器上使用 Python Flask,mod_wsgi 突然不能工作了。 这是错误信息。 mod_wsgi (pid=6206): Target WSGI script '/
我一直在研究在运行 Python/mod_wsgi 的网络场中创建快速缓存的不同系统。 Memcache 和其他是选项......但我想知道: 因为我不需要跨机器共享数据,希望每台机器都维护一个本地缓
我在 apache2 上运行 mod_wsgi。它正在运行 Django,出于某种原因,在我更改代码后,旧版本有时会与新代码一起显示。 例如,在创建一个仅返回带“Hi”的 Http 响应的 View
当我尝试安装 mod_wsgi 时遇到以下错误 ./configure checking for apxs2... no checking for apxs... /usr/sbin/apxs che
我正在使用 Hostgator 开发 Linux Centos 虚拟主机。我使用的是 httpd 版本 2.2.15。 我使用标签 --with-python=/usr/local/bin/pytho
我使用 CherryPy、Apache 和 mod_wsgi 构建了一个网站,除了一个问题之外,一切都很好。当用户操作要求自动发送电子邮件时,我有时会使用 os.fork ,以便父进程可以立即返回并向
我是一名优秀的程序员,十分优秀!