亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在Django中乘以用戶輸入

如何在Django中乘以用戶輸入

慕碼人8056858 2022-08-16 16:37:38
我想創建簡單的視圖,該視圖采用用戶輸入(數字)并在其他頁面上呈現此數字乘以2。我的代碼:views.pydef multiply(request):    if request.method == 'POST':        data = request.POST.get("decimalfield")        twice = data * 2        return render(request, 'multiply.html', twice)輸入.html<form method="POST" action="{% url 'input' %}">    <input type="text" name="decimalfield">    <button type="submit">Upload text</button></form>我的問題是這不起作用,現在我得到錯誤:視圖.views.multiply沒有返回HttpResponse對象。它返回了 None。我的第二個問題是我不知道如何在第二頁上呈現該結果,而不是在同一頁面上。網址應該看起來像我的嗎?urls.pypath('input', views.multiply, name='input'),path('multiply', views.multiply, name='multiply'),我真的很沮喪,因為這太簡單了,我無法做到。
查看完整描述

3 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

我發現對我有用:


views.py :


def input(request):

    return render(request, 'input.html', {})


def multiply(request):

    if request.method == 'POST':

        data = request.POST.get("decimalfield")

        twice = int(data) * 2

        return render(request, 'multiply.html', {'twice':twice})

urls.py :


path('input', views.input, name='input'),

path('multiply', views.multiply, name='multiply'),

輸入.html


<form method="POST" action="{% url 'multiply' %}">

    {% csrf_token %}

    <input type="text" name="decimalfield">

    <button type="submit">Upload text</button>

</form>

乘法.html


<label>{{ twice }}</label>


查看完整回答
反對 回復 2022-08-16
?
慕的地6264312

TA貢獻1817條經驗 獲得超6個贊

參數應該是字典。views.py:


def multiply(request):

    if request.method == 'POST':

        data = request.POST.get("decimalfield")

        twice = data * 2

        return render(request, 'multiply.html', {'twice':twice})

    return render(request, 'input.html')

為什么你有兩個指向一個視圖的網址?第二個是什么?刪除它


path('input', views.multiply, name='input'),

# path('multiply', views.multiply, name='multiply'),

創建乘法.html并渲染兩次:


<p>{{ twice }}</p>


查看完整回答
反對 回復 2022-08-16
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

好的,因為當你通過url(name = 'input')進入頁面時,第一個方法是請求的,所以他們不會重新運行渲染,因為它在方法POST中,你現在可以編輯:


def multiply(request):

  if request.method == 'POST':

    data = request.POST.get("decimalfield")

    twice = {'data':data*2 }

    return render(request, 'multiply.html', twice)

  return render(request, 'multiply.html')


查看完整回答
反對 回復 2022-08-16
  • 3 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號