Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我做错了什么?似乎无法将参数传递给服务器_Python_Bottle - Fatal编程技术网

Python 我做错了什么?似乎无法将参数传递给服务器

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(

我试图让用户输入一个数字,该数字将调用查询并在表中显示结果供用户比较,但当用户提交表单时,python程序将获得输入并正确地获得结果

简而言之,用户输入一个数字并生成一个小的结果表

由于某些原因,输入未被传递

请检查我的工作,看看有什么问题

下面是main.py:

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()
    函数中。我是从网上的某个地方得到的,我想返回这个选项,所以