ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python网页mod_wsgi

2019-11-01 05:05:06  阅读:280  来源: 互联网

标签:mod-python mod-wsgi python


在将mod_python用于python网站之前.不幸的是mod_python不再是最新的,所以我寻找了另一个框架并找到了mod_wsgi.

在mod_python中,可能有一个index方法以及其他方法.我希望有多个页面被调用.
像这样:

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时只发现世界的原因是,您正在搜索的是mod_wsgi而不是实现标准的框架.

如此看来,wsgi有点像洋葱.网络服务器将请求发送给您的可通话对象.具有2个参数:environ和start_response.据我所知,start_response是将发送标头的函数,而环境是存储所有参数的位置.

您可以滚动自己的框架,也可以使用诸如金字塔,长颈瓶之类的东西.这些框架中的每一个都可以与wsgi绑定.

然后,您创建一个处理请求的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]

这是一个非常简单的示例,但是有了环境,您就可以做任何您想做的事情. wsgi本身不会执行您可能已经习惯使用mod_python的任何事情.它实际上只是用于Web服务器的python的接口.

编辑

正如其他人在评论中所说,如果您对自己的工作一无所知,请不要尝试自己动手做.考虑使用其他框架,并首先了解更多信息.

例如,您需要编写一种将函数绑定到url的正确方法.正如我在示例中所写的那样,这是很糟糕的,但是应该给出一个背景如何完成的想法.您可以使用正则表达式来处理请求以提取ID或对金字塔和zope使用类似于遍历的方法.

如果您真的坚持自己动手,请参阅webob教程.

http://docs.webob.org/en/latest/do-it-yourself.html

标签:mod-python,mod-wsgi,python
来源: https://codeday.me/bug/20191101/1981439.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有