Django开发加法功能遭遇404错误及路径问题求助
解决你的Django加法功能404及相关问题
看起来你遇到的核心问题是根路径(/)没有对应的视图处理,同时还有几个细节问题会影响功能正常运行,我一步步帮你梳理解决:
1. 修复根路径404问题
你访问http://127.0.0.1:8000/时出现404,是因为calc/urls.py里只定义了add路径,没有处理根路径的视图。我们需要给根路径添加对应的视图来展示表单页面:
第一步:给calc/views.py添加首页视图
from django.shortcuts import render from django.http import HttpResponse def index(request): # 渲染首页的表单页面 return render(request, "index.html") def add(request): val1=request.GET['num1'] val2=request.GET['num2'] # 注意:要转成数值类型再相加,否则会变成字符串拼接 res=int(val1)+int(val2) return render(request,"result.html",{'result':res})
第二步:修改calc/urls.py,添加根路径映射
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), # 根路径对应首页视图 path('add/', views.add, name='add'), # 建议加结尾斜杠,符合Django路径规范 ]
2. 修复表单路径硬编码问题
你的index.html里表单的action="add"是相对路径,建议用Django的{% url %}模板标签生成路径,避免路径错误:
{% extends 'base.html' %} {% block content %} <form action="{% url 'add' %}"> enter ist num: <input type="text" name="num1"><br> enter 2nd num : <input type="text" name="num2"><br> <input type="submit"> </form> {% endblock %}
3. 修复数值相加的逻辑bug
你当前views.py里的res=val1+val2是把两个字符串拼接(比如输入1和2会得到"12"而非3),需要转成整数(或浮点数)再相加,还可以加个异常处理防止用户输入非数字:
def add(request): try: val1 = int(request.GET['num1']) val2 = int(request.GET['num2']) res = val1 + val2 except ValueError: res = "请输入有效的数字" return render(request,"result.html",{'result':res})
4. 验证现有配置
你的new12/urls.py和settings.py配置是正确的——已经把calc加入INSTALLED_APPS,并且通过include关联了应用的URL,这部分不需要调整。
现在重启Django服务器,访问http://127.0.0.1:8000/就能看到表单,输入数字提交后就能得到正确的相加结果了。
内容的提问来源于stack exchange,提问作者neha samala
相关产品推荐
相关产品推荐

