2017-09-14 68 views
0

我有一些泡沫的算法,插入排序,合并不同的算法结果等Django的返回到Python解释器

我已经编写它们放入一个Django的网站,让您可以输入数字的数组,它将其排序放入订购。

为了测试我的号码名单通过:

[3, 12, 5, 4, 8, 5, 1]

当我运行在一个shell函数算法返回我想要什么:

[1, 3, 4, 5, 5, 8, 12]

当我运行它通过Django的输出不是我想要的:

[1, 12, 3, 4, 5, 5, 8]

我已经尝试了POST和GET方法。

我尝试过,没有for循环。

我尝试过和没有CSRF_TOKENS。

views.py

from django.shortcuts import render 
from django.conf import settings 
from custom.bubble import maf_bubble 

def algo(request): 
    if request.GET: 
     nums_list = maf_bubble(list(request.GET['numbers'].split(','))) 
     rtn_res = render(request, 'algorithms/sort.html', {'results' : nums_list}) 
     return rtn_res 
    else: 
     return render(request, 'algorithms/sort.html', {}) 

sort.html

<div class="wrapper"> 
<div class="search"> 


     <form class="navbar-form navbar-left" method="GET" action=" " style="margin:2%" > 
      <select name="algo_type" style="padding:5%; border-radius:5px; border: 2px solid #ccc;" placeholder="Type" > 
      <option value="bubble">Bubble Sort</option> 
      <option value="insertion"> Insertion Sort</option> 
      <option value="merge" selected>Merge Sort</option> 
      <option value="quick">Quick Sort</option> 
      <option value="selection">Selection Sort</option> 
      <option value="shell">Shell Sort</option> 

         </select> 
<br><br> 
     <form class="navbar-form navbar-left" method="GET">{% csrf_token %} 
       <div> 
        <input type="text" name="numbers" autocomplete="on" placeholder="Input numbers" /> 
       </div> 
       <br> 

     <br> 
     <button type="submit">Sort!</button> 
    </form> 
</div> 

<div class="results"> 
{{results}} 

    {% for res in results %} 
    <b>{{ res }}</b> 

{% endfor %} 

</div> 
</div> 
{% endblock %} 

回答

2

你发送一个字符串列表,并陆续进行排序为字符串。你需要将它们转换为整数。

nums_list = maf_bubble(list(map(int, request.GET['numbers'].split(',')))) 
+0

太棒了。我确实尝试了'int',但没有'map' ..并且在错误的地方! – johnashu