首页 > 解决方案 > 表单提交在带有 python 2.7 的 Django 1.11 中不起作用

问题描述

我是 Django 新手。我有 python2.7 和 django 1.11 版本,我能够显示主页等。但是当尝试创建表单并提交它时不会重定向到任何页面

网址.py

from django.conf.urls import include
from . import views
from django.conf.urls import url
    
urlpatterns = [
    url("",views.home, name="home"),
    url("add",views.add,name="add")
]

主页.html

{%extends 'base.html' %}
{%block content %}

<H1>  hello world 2 {{name}} </H2>

<form action="/add">
    Enter 1st number : <input type="text" name = "num1"><br>
    Enter 2nd number : <input type="text" name = "num2"><br>
<input type = "submit">
</form>

视图.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def home(request):
    x = ' Hello World'
    return render(request,'home.html',{'name' : 'Test  Name'} )
    # return HttpResponse(x)
def add(request):
    print('testing')
    val1 = request.GET['num1']
    val2 = request.GET['num2']
    res = val1 + val2
    print(res)
    return render(request,"results.html",{'result' : res})

results.html 是一个测试页面。一旦我点击提交,它就不会在结果页面上显示任何东西。url.py 有什么问题吗

标签: pythondjango

解决方案


我不完全确定,但我猜这与您的 URL 的声明方式有关。特别是您的“/add/”网址。

我通读了https://docs.djangoproject.com/en/1.11/topics/http/urls/#example,似乎将 url 路径视为正则表达式很重要。我也相信斜杠很重要——我肯定会尝试添加它,因为这很可能是你的问题。

    url(r"^add/$",views.add,name="add")

推荐阅读