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
相关产品推荐
相关产品推荐

