【问题标题】:I'm trying to make a table print page in django but when I pass multiple value through dict it's print only first value [closed]我正在尝试在 django 中制作表格打印页面,但是当我通过 dict 传递多个值时,它只打印第一个值 [关闭]
【发布时间】:2020-06-24 03:11:15
【问题描述】:

views.py

def inp(request):
    return render(request,'inp.html')
def tab(request):
    num1 = dict()
    number =int (request.GET.get('num'))
    for i in range(1,11):
        num1[i] = number*i
    for key in num1:
        print(num1[key])
        return render(request,'tab.html',{"result" : num1[key]})

inp.html

<!DOCTYPE html>
<html>
    <head>
        <title>table</title>
    </head>
    <h1>Enter The Number Which You Want For Table</h1> 
 <body>
  <form action ="tab/" method="get">
      Enter a Number:<input type = "text" name ="num">
      <input type = "submit">
</form>
 </body>   
</html>

tab.html

<!DOCTYPE html>
<html>
    <head>
        <title>output</title>
    </head>
 <body>
 your answer is {{result}}<br>
 your answer is {{result}}<br>
 your answer is {{result}}<br>
 your answer is {{result}}<br>
 your answer is {{result}}<br>
 your answer is {{result}}<br>
 your answer is {{result}}<br>
 your answer is {{result}}<br>
 your answer is {{result}}<br>
 your answer is {{result}}<br>


 </body>   
</html>`enter code here`

 - List item

【问题讨论】:

  • 请清晰描述您的问题。
  • 因为在for循环中返回所以第一次返回程序将返回第一个值并停止执行。
  • 任何选择
  • @TusharKhowal 你想打印乘法表吗?
  • @ShubhamDevgan 是的

标签: python django render


【解决方案1】:

修改标签功能

 def tab(request):
        num1 = dict()
        number =int (request.GET.get('num'))
        for i in range(1,11):
            num1[i] = number*i

        return render(request,'tab.html',{"result" : num1})

修改模板

<!DOCTYPE html>
<html>
    <head>
        <title>output</title>
    </head>
 <body>
 {% for value in result.values %}
 your answer is {{value}}<br>
{% endfor %}

 </body>   
</html>

【讨论】:

    【解决方案2】:

    在你的views.py

    def inp(request):
        return render(request,'inp.html')
    def tab(request):
        num1 = dict()
        number =int (request.GET.get('num'))
        for i in range(1,11):
            num1[i] = number*i
    
        return render(request,'tab.html',{"number":number,"result" : num1.values()})
    

    在你的tab.html

    <!DOCTYPE html>
    <html>
        <head>
            <title>output</title>
        </head>
     <body>
    {% for x in result %}
        {{number}} * {{ forloop.counter }} = {{x}}
    {% endfor %}
     </body>   
    </html>
    

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 2022-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-13
      • 1970-01-01
      相关资源
      最近更新 更多