2017-09-14 64 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