繁体   English   中英

一个网页上的简单数学

[英]Simple Math on One Webpage

我目前正在尝试做一些基本的事情,例如将用户输入的两个数字添加到页面上并在同一页面上显示结果,但我遇到了问题。

索引.html

在此处输入图像描述

{% extends "project_long_page/base.html" %}

{% block body %}

<form action="." method="POST">

    {% csrf_token %}

    {{ forms }}

    <input type="submit">

</form>

{% endblock %}

视图.py

在此处输入图像描述

from django.shortcuts import render
import datetime
from django import forms
from django.shortcuts import render


class NewTaskForm(forms.Form):
    num1 = forms.IntegerField(label="Number 1")
    num2 = forms.IntegerField(label="Number 2")


# Create your views here.
def index(request):
    return render(request, "project_long_page/index.html")


def add(request):
    return render(request, "project_long_page/index.html", {
        "form": NewTaskForm()
    })

网址.py

在此处输入图像描述

from django.urls import path
from . import views

app_name = "project_long_page"
urlpatterns = [
    path("", views.index, name="index")

]

当前网页 Output

在此处输入图像描述

所需网页 Output (同时保持输入的原始值)

在此处输入图像描述

如果您提供帮助,谢谢您的帮助:,)

编辑:

如果你想看到这个...

在此处输入图像描述

更新1:

在此处输入图像描述

使用来自@Marco 的代码(谢谢@Marco!)

def index(request):
    if request.method == "POST":
        form = NewTaskForm(request.POST)
        if form.is_valid():
            num1 = form.cleaned_data["num1"]
            num2 = form.cleaned_data["num2"]
            result = num1 * num2
            context = {
                "form": NewTaskForm(initial={"num1": num1, "num2": num2}),
                "result": result
            }
            return render(request, "project_long_page/index.html", context)

    form = NewTaskForm()
    return render(request, "project_long_page/index.html", {"form": form})

更新索引。html

{% extends "project_long_page/base.html" %}

{% block body %}

<form action="." method="POST">

    {% csrf_token %}

    {{ form }}

    <input type="submit">
    <br>

    The answer is {{ result }}!

</form>

{% endblock %}

将您的 index() 视图更改为:

def index(request):
    if request.method == "POST":
        form = NewTaskForm(request.POST)
        if form.is_valid():
            num1 = form.cleaned_data["num1"]
            num2 = form.cleaned_data["num2"]
            result = num1 * num2
            context = {
                "form": NewTaskForm(initial={"num1": num1, "num2": num2}),
                "result": result
            }
            return render(request, "project_long_page/index.html", context)

    form = NewTaskForm()
    return render(request, "project_long_page/index.html", {"form": form})

然后将result添加到您的模板中。

没有检查代码是否工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM