You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django渲染文本与数值:实现姓名获取及两数相加并返回页面

Django 文本与数值渲染及表单数据处理修正

你的代码存在一个直接错误:计算res时使用的val1和val2并未在函数中定义——它们是字典的键名,不是局部变量,Python会因找不到变量名抛出报错。以下是修正方案及完整的渲染流程说明:

修正后的视图函数

def add(request):
    # 从GET请求中提取数据,用get()避免未传参时的KeyError
    first_name = request.GET.get('first_name', '')
    # 转换数值时设置默认值,同时后续可补充异常处理
    num1 = int(request.GET.get('num1', 0))
    num2 = int(request.GET.get('num2', 0))
    
    # 计算两数之和
    result = num1 + num2
    
    # 准备要传递给模板的上下文数据
    my_context = {
        'fname': first_name,
        'val1': num1,
        'val2': num2,
        'res': result
    }
    
    return render(request, "results.html", my_context)

results.html 模板渲染语法

在Django模板中,直接使用双大括号{{ 变量名 }}即可渲染文本或数值,示例代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>计算结果</title>
</head>
<body>
    <h1>您好,{{ fname }}!</h1>
    <p>您输入的两个数:{{ val1 }} 和 {{ val2 }}</p>
    <p>它们的和是:<strong>{{ res }}</strong></p>
</body>
</html>

额外实用提示

  • 如果使用POST方式提交表单,需将request.GET改为request.POST,同时在模板的<form>标签中添加method="POST"和{% csrf_token %}标签,防止跨站请求伪造。
  • 实际开发中建议添加数据验证逻辑,比如用try-except捕获数值转换失败的异常,或使用Django表单类做更规范的校验,避免非法输入导致程序崩溃。

内容的提问来源于stack exchange,提问作者shotblank

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 07:41:36