Can';在我的测试站点上无法获得原始输入 #/usr/bin/python 打印“内容类型:text/html\n\n”; 打印“”; 打印“CGI测试”; 打印“”; 使用Python打印“

Can';在我的测试站点上无法获得原始输入 #/usr/bin/python 打印“内容类型:text/html\n\n”; 打印“”; 打印“CGI测试”; 打印“”; 使用Python打印“,python,Python,测试页面””; #这是我第一次尝试python name=原始输入('输入您的姓名:') 打印(“嗨%s,让我们成为朋友!”%name); 打印“”; 这是我的全部代码。这是我第一次使用python,不知道我是否正确配置了它。我只是想让用户输入他们的名字,但我没有让他们输入的区域 我只是简单地得到“输入你的名字:”然后什么都没有。我无法输入姓名。请告诉我我做错了什么。我是否不需要在HTML中运行它来运行完整的脚本?(如果这是一个如此愚蠢的问题,我很抱歉——同样,我昨天才刚刚开始学习)更改代码

测试页面”

”; #这是我第一次尝试python name=原始输入('输入您的姓名:') 打印(“嗨%s,让我们成为朋友!”%name); 打印“”; 这是我的全部代码。这是我第一次使用python,不知道我是否正确配置了它。我只是想让用户输入他们的名字,但我没有让他们输入的区域


我只是简单地得到“输入你的名字:”然后什么都没有。我无法输入姓名。请告诉我我做错了什么。我是否不需要在HTML中运行它来运行完整的脚本?(如果这是一个如此愚蠢的问题,我很抱歉——同样,我昨天才刚刚开始学习)

更改代码如下:

#!/usr/bin/python
print "Content-type: text/html\n\n";
print "<html><head>";
print "<title>CGI Test</title>";
print "</head><body>";
print "<p>Test page using Python</p>";

#this is my very first python attempt
name=raw_input('Enter your name : ')
print ("Hi %s, Let us be friends!" % name);

print "</body></html>";
#/usr/bin/python
导入cgi
form=cgi.FieldStorage()
name=form.getvalue('name')
打印“内容类型:text/html\n\n”
打印“”
打印“CGI测试”
打印“”
使用Python打印“测试页”
打印“嗨%s,让我们成为朋友!”%name
打印“”
然后访问。
(不要省略尾随?name=nobody)

这并不像你想象的那么简单。web浏览器不是终端,因此不能将其视为终端。如果你想在网上使用Python,你有很多东西要学;我认为你最好通过实践来学习的东西。试着去调查一下。或任何。

CGI(公共网关接口)显示文本!服务器上的stdin或终端未在浏览器上打开,也未通过某种代理打开

如果您想获得输入并用CGI显示它,您必须使用两步方法

1) 显示带有
标记的html页面,该标记包括
和提交按钮

2) 填写表单并按下submit键后,输入的文本将返回到服务器,您可以使用它创建第二个页面,说“嗨%s,让我们成为朋友!”


如果你想做一些更具交互性的事情,那么你必须使用javascript和css。Dojo工具包非常容易使用

这里的技巧是
原始输入
等待标准输入(缩写为
stdin
)-但是,CGI中没有交互式
stdin
(如果我没记错的话,
stdin
是请求)

如果希望通过HTTP从用户获取输入,则需要在用户响应时使用并获取数据:

#!/usr/bin/python

import cgi

form = cgi.FieldStorage()
name = form.getvalue('name')

print "Content-type: text/html\n\n"
print "<html><head>"
print "<title>CGI Test</title>"
print "</head><body>"
print "<p>Test page using Python</p>"
print "Hi %s, Let us be friends!" % name
print "</body></html>"
#/usr/bin/python
导入cgi
form=cgi.FieldStorage()
name=form.getvalue('name')
#注意三重引号字符串的使用
#和`.format`而不是`%`。
#以这种方式编写多行文本要容易得多。
打印“”内容类型:文本/html
CGI测试
使用Python测试页面

你的名字叫什么? 嗨{提供名字},让我们成为朋友吧! “”格式(提供的名称=名称)

然而,你最好使用一个轻量级框架,将所有这些从你的帖子和评论中抽象出来。

从你的帖子和评论中,我知道你想要一个表单,在其中输入你的名字,提交它,然后打印“嗨,让我们成为朋友吧!”。如果是这样的话,您需要在代码中添加当前没有的“表单”。我建议您查看本教程,了解有关该主题的详细说明:


当然,在获得所需的输出之前,您需要首先提交输入(这需要刷新网页)。您还可以查看动态web编程,以避免重新加载网页。

您不能在CGI.Oh中使用raw_input()。我如何上传到我的网站,然后才能使用它?我是使用apache还是其他什么?我只想在我的网站上测试python。我已经想了好几个小时了(这仍然不能解决用户输入姓名的问题。谢谢。我不打算使用CGI。我只想让我的脚本显示在我的网页上,不管它是如何出现的……好吧。所以,为了在网络上使用python,我需要下载瓶子?也许我吃得太多了。瓶子是什么?我如何让我的网站充当终端al???@RheannaLamph-不,你不需要下载像瓶子一样的网络框架-但它会使以后处理事情变得更容易。你不能真正让你的网站充当终端(至少,不容易)-相反,您将处理请求/响应周期,在该周期中,您向用户发送一个页面,用户填写该页面并将其发送回您,然后您执行该页面。
#!/usr/bin/python

import cgi

form = cgi.FieldStorage()
name = form.getvalue('name')
# Note the use of triple-quoted strings
# and `.format` rather than `%`.
# Much easier to do multi-line text this way.

print """Content-type: text/html

<html><head>
<title>CGI Test</title>
</head><body>
<p>Test page using Python</p>
<form>
<label>What is your name?
<input type="text" name="name" value="{provided_name}"></label>
</form>
Hi {provided_name}, Let us be friends!
</body></html>""".format(provided_name=name)