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

Django姓名拼接功能开发:无法输出结果求助

Django姓名拼接应用无法输出结果的排查方案

1. 表单Action路径不匹配

你的应用内urls.py里,处理提交的路由是path('add', views.addname, name='add'),但input.html里表单的action='addname'与路由路径不匹配,导致请求无法正确到达addname视图。

修改input.html的form标签,推荐用Django的{% url %}标签(适配路由名称,更灵活):

<form action="{% url 'add' %}" method='post'>

或者直接写对应路径:

<form action='/add' method='post'>

2. 模板继承缺失

你的模板中使用了{% block content %},但没有继承基础模板,会导致block内容无法正常渲染。

  • 新建templates/base.html,内容示例:
<!DOCTYPE html>
<html>
<head>
    <title>姓名拼接应用</title>
</head>
<body>
    {% block content %}{% endblock %}
</body>
</html>
  • 在input.html和resultprint.html开头添加继承语句:
{% extends 'base.html' %}

3. POST请求的异常处理

直接用request.POST['fname']如果用户未输入就提交,会抛出KeyError导致崩溃,建议用.get()方法做容错处理:
修改views.py的addname函数:

def addname(request):
    val1 = request.POST.get('fname', '')
    val2 = request.POST.get('lname', '')
    res = f'Hi {val1} {val2}'  # 用f-string更易读,同时给姓名添加空格分隔
    return render(request, 'resultprint.html', {'resultprint': res})

4. 路由路径的斜杠规范

Django默认会重定向带斜杠的路径,建议给路由添加末尾斜杠,避免路径匹配问题:
修改应用内urls.py:

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

按以上步骤修改后,即可正常输出拼接结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:25:38