views.py和urls.py无法连接以执行功能

时间:2019-06-19 21:50:12

标签: python mysql django

我有一个与django连接的mysql数据库,我知道它已连接,因为您已经向我显示了数据。但是我做了一个小表格来做测试,并且不保存数据。该代码是正确的,因为我已经将其从地方移到了def index (request):那里,如果您向我发送数据,那是不正确的,因为它没有正确输入我执行的功能

views.py

from django.shortcuts import render, redirect
from models import Test

def index(request):
    test = Test.objects.all()
    context = {'test': test }

    return render(request, 'test_app/index.html', context)


def create(request):
    print request.POST  
    test = Test(name=request.POST['name'], breed= request.POST['breed'])
    test.save()
    return redirect('/')

urls.py

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index),
    url(r'^create/$', views.create)

]

index.html

 <form action"/create" method="post">
      {% csrf_token %}
      <label for="name">Name: <input type="text" name="name" />
    </label>
      <label for="breed">Breed: <input type="text" name="breed"/> 
    </label> <input type="submit" value="create" />

    </form>

如果您发送POST但没有任何变量,只是没有保存在控制台中,所以我没有错误。使用python 2.7和django 1.1

1 个答案:

答案 0 :(得分:1)

我不确定我是否理解您的问题,但是在我看来,您的问题是您的表单提交了错误的网址。您的表单指向/create,URL模式为r'^create/$'

要使表单提交到您的创建视图,请设置正则表达式以有选择地匹配斜杠r'^create/?$',或将斜杠添加到表单操作action="/create/"