Python 我做错了什么?似乎无法将参数传递给服务器
我试图让用户输入一个数字,该数字将调用查询并在表中显示结果供用户比较,但当用户提交表单时,python程序将获得输入并正确地获得结果 简而言之,用户输入一个数字并生成一个小的结果表 由于某些原因,输入未被传递 请检查我的工作,看看有什么问题 下面是main.py:Python 我做错了什么?似乎无法将参数传递给服务器,python,bottle,Python,Bottle,我试图让用户输入一个数字,该数字将调用查询并在表中显示结果供用户比较,但当用户提交表单时,python程序将获得输入并正确地获得结果 简而言之,用户输入一个数字并生成一个小的结果表 由于某些原因,输入未被传递 请检查我的工作,看看有什么问题 下面是main.py: from bottle import request, route, run, view @route('/') @view('index.html') def index(): print request.GET.get(
from bottle import request, route, run, view
@route('/')
@view('index.html')
def index():
print request.GET.get('choice');
return dict(choice = request.method == 'GET');
run(host = 'localhost', port = 9988);
以下是index.html:
<!DOCTYPE html>
<html>
<head>
<title>Search Engine Comparator!</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<style>
#navlist li
{
display: inline;
list-style-type: none;
padding-right: 20px;
}
</style>
</head>
<body>
% from bSearch import *
% from gSearch import *
% from termList import *
<center><h2>Search Engine Comparator</h2></center>
<div id="navcontainer" align="center">
<ul id="navlist">
<ul>
% r1 = getList1();
% for r in r1:
<li> {{ r }} </li>
% end
</ul>
<ul>
% r2 = getList2();
% for r in r2:
<li> {{ r }} </li>
% end
</ul>
<ul>
% r3 = getList3();
% for r in r3:
<li> {{ r }} </li>
% end
</ul>
<ul>
% r4 = getList4();
% for r in r4:
<li> {{ r }} </li>
% end
</ul>
<ul>
% r5 = getList5();
% for r in r5:
<li> {{ r }} </li>
% end
</ul>
</ul>
<ul id="navlist">
<ul>
% r6 = getList6();
% for r in r6:
<li> {{ r }} </li>
% end
</ul>
<ul>
% r7 = getList7();
% for r in r7:
<li> {{ r }} </li>
% end
</ul>
<ul>
% r8 = getList8();
% for r in r8:
<li> {{ r }} </li>
% end
</ul>
<ul>
% r9 = getList9();
% for r in r9:
<li> {{ r }} </li>
% end
</ul>
<ul>
% r10 = getList10();
% for r in r10:
<li> {{ r }} </li>
% end
</ul>
</ul>
</div>
% choice = request.GET.get('choice');
% if choice:
<form action="/" method="get" id="resForm" name="resForm">
<div align="center">
<label for="choice">Enter which list to query:</label>
<input type="text" name="choice" />
<input type="submit" value="Submit" />
</div>
% else:
<form action="" method="get" id="resForm" name="resForm">
<div align="center">
<label for="choice">Enter which list to query:</label>
<input type="text" name="choice" />
<input type="submit" value="Submit" />
</div>
% queries = getQueries(choice);
% for q in queries:
<table border="1" width="100%">
<tr>
<th></th><th>The query is: {{ q }}</th><th></th>
</tr>
<tr>
<td align="center"><input type="checkbox" id="b" name="bing">I pick this!!!</td>
<td align="center"><input type="checkbox" id="g" name="goog">I pick this!!!</td>
<td align="center"><input type="checkbox" id="y" name="yhoo">I pick this!!!</td>
</tr>
<tr>
<td width="33%">
<ol>
% bRes = bSearch(q);
% for b in bRes[:8]:
<li>{{ b.title }} <br /> <a href={{ b.url }}>{{ b.url }}</a></li>
% end
</ol>
</td>
<td width="33%">
<ol>
</ol>
</td>
<td width="33%">
<ol>
<li>aint working b!</li>
</ol>
</td>
</tr>
<br />
% end
</table>
% end
<center><br /><input type="button" id="checker" value="Click to get the count!" onclick="checkerCount()" /></center>
</form>
</body>
</html>
<script type="text/javascript">
function checkerCount()
{
var inputTags = document.getElementsByTagName('input');
var size = inputTags.length;
var b = 0;
var g = 0;
var y = 0;
for (var i = 0; i < size; i++)
{
if(inputTags[i].type=='checkbox' && inputTags[i].checked && inputTags[i].id=='b') { b++; }
if(inputTags[i].type=='checkbox' && inputTags[i].checked && inputTags[i].id=='g') { g++; }
if(inputTags[i].type=='checkbox' && inputTags[i].checked && inputTags[i].id=='y') { y++; }
}
alert("After counting and all that, we found the scores!\n" +
"Bing has score: " + b +
"\nGoogle has score: " + g +
"\nYahoo has score: " + y);
}
</script>
搜索引擎比较器!
#李海军
{
显示:内联;
列表样式类型:无;
右边填充:20px;
}
%从b搜索导入*
%从gSearch导入*
%从术语表导入*
搜索引擎比较器
%r1=getList1();
%对于r1中的r:
- {{r}}
%结束
%r2=getList2();
%对于r2中的r:
- {{r}}
%结束
%r3=getList3();
%对于r3中的r:
- {{r}}
%结束
%r4=getList4();
%对于r4中的r:
- {{r}}
%结束
%r5=getList5();
%对于r5中的r:
- {{r}}
%结束
%r6=getList6();
%对于r6中的r:
- {{r}}
%结束
%r7=getList7();
%对于r7中的r:
- {{r}}
%结束
%r8=getList8();
%对于r8中的r:
- {{r}}
%结束
%r9=getList9();
%对于r9中的r:
- {{r}}
%结束
%r10=getList10();
%对于r10中的r:
- {{r}}
%结束
%choice=request.GET.GET('choice');
%如果选择:
输入要查询的列表:
%其他:
输入要查询的列表:
%查询=获取查询(选项);
%对于查询中的q:
查询是:{{q}
我选这个!!!
我选这个!!!
我选这个!!!
%bRes=b搜索(q);
%对于bRes中的b[:8]:
{{b.title}}
%结束
b不工作李>
%结束
%结束
函数检查计数()
{
var inputTags=document.getElementsByTagName('input');
变量大小=输入长度;
var b=0;
var g=0;
var y=0;
对于(变量i=0;i
将代码从模板移动到index()
函数,并将列表作为字典值传递
一般来说,尽量将模板中的编程逻辑限制在呈现数据所需的最低限度。我不明白这行应该做什么:
return dict(choice = request.method == 'GET');
这是使用单个键“choice”创建字典,如果请求方法为GET,则其值为True
,否则为False
。我非常怀疑你的意思。也许你的意思是:
return {'choice': request.GET.get('choice')}
你能用哑巴的语言解释一下吗。。所以基本上把所有的“%python代码”移到index()?@Joe Chen:是的。你是对的。这不是您当前的问题,但如果您移动代码,它也应该自行解决。模板语言允许任意Python代码的事实并不意味着将其放在那里是一个好主意。顺便说一句,你不需要把所有的代码放在一个
index()
函数中。我是从网上的某个地方得到的,我想返回这个选项,所以