Добавьте два числа в django, и результат будет напечатан на той же странице - PullRequest
0 голосов
/ 14 октября 2019

Я новичок в django, и мне нужно добавить два числа x и y.

x и y - входные данные от пользователя.

Вот мой views.py

from django.shortcuts import render
from django.http import HttpResponse

def home(request):
    return render(request, 'home.html', {'name':'keyur'})

def add(request):

    val1 = int(request.POST['num1'])
    val2 = int(request.POST['num2'])
    # red = add('val1','val2')
    res = val1 + val2
    return render(request,'home.html',{'result': res})

Вот мой url.py

from django.urls import path

from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('add', views.add, name='add')

]

Вот мой home.html

{% extends 'base.html'  %}

{% block content %}

<h1>hello {{name}} !!!!</h1>
   <form action="add" method="post">
    {% csrf_token %}
                Enter a 1st number: <input type="text" name="num1"  placeholder="enter the number">
                Enter a 2st number: <input type="text" name="num2" placeholder="enter the number">
                <input type="submit">

            </form>


{% endblock %}

Вот мой результат. HTML10

{% extends 'base.html'  %}

{% block content %}

    Result is... {{result}}

{% endblock %}

Я хочу напечатать вывод на той же странице. Может кто-нибудь, пожалуйста, помогите мне?

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Вам необходимо отобразить шаблон result.html при добавлении двух чисел

def add(request):

    val1 = int(request.POST['num1'])
    val2 = int(request.POST['num2'])
    # red = add('val1','val2')
    res = val1 + val2
    return render(request,'result.html',{'result': res})

, которые вы видите в последней строке, я изменил home.html на result.html.

0 голосов
/ 14 октября 2019

Я думаю, вам нужно сделать следующее:

def add(request):
    res = 0
    if request.method == 'POST':
        val1 = int(request.POST['num1'])
        val2 = int(request.POST['num2'])

        res = val1 + val2
    return render(request,'result.html',{'result': res})

Также я бы предложил изменить тип ввода с текста на номер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...