【问题标题】:How can i do python form post request?我该如何做 python 表单发布请求?
【发布时间】:2012-07-03 05:12:21
【问题描述】:

form.html:

<form action="p.py" method="post">
 <input type="text" id="id_text" name="name_text" />
 <input type="submit" id="id_submit" name="name_submit" />
</form>

p.py:

#!/usr/bin/python

#what to write here...

两个文件都放在/var/www/,现在从http://example.com/form.html,如果我点击提交按钮,我会执行p.py,我怎样才能得到文本框的值?

它是安装在计算机上的 apache/httpd 网络服务器。

【问题讨论】:

    标签: python forms apache post request


    【解决方案1】:

    1st,要让p.py由apache运行,你需要检查:

    • 1、为python脚本配置apache站点,可以选择:cgi/fastcgi
    • 如:ScriptAlias /cgi-bin/ /usr/local/xxxxxx/cgi-bin/
    • 2、确保你的p.py文件是可运行的,修改为chown/chmod

    第二,要从表单中获取值,需要了解cgi知识并从环境中获取数据,

    或者使用 cgi 模块更容易:

    import cgi
    form = cgi.FieldStorage()
    v = form.getvalue('id_text','')
    
    print """Content-type: text/html
    
    <html>
    <body> submit value:%s </body>
    </html>""" % (v)
    

    最后,我建议:

    • 将可运行的脚本放到一个单独的目录中,远离/var/www/
    • 使用 Web 框架进行 Web 开发。 2012年用cgi级别的技术太深了。

    【讨论】:

    • 不,我不想做cgi应用,我想用wsgi应用。
    • Dynamic Content 必须有一种与 apache 通信的方法。你拒绝CGI/WSGI,你选择什么?
    • 我拒绝了CGI,我没有拒绝WSGI,实际上我正在尝试使用WSGI。
    猜你喜欢
    • 2010-12-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2020-05-20
    • 2023-03-23
    相关资源
    最近更新 更多