【发布时间】:2018-01-16 18:36:59
【问题描述】:
我想要的只是在用户点击Submit 时让用户输入进入数据库,但我在浏览器中收到一条错误消息:
RuntimeError at /content
You called this URL via POST, but the URL doesn't end in a slash and
you have APPEND_SLASH set.
Django can't redirect to the slash URL while maintaining POST data.
Change your form to point to 127.0.0.1:8000/content/ (note the trailing
slash), or set APPEND_SLASH=False in your Django settings.
我知道我非常接近实现这一目标,我只是想知道我错过了什么或我搞砸了。
这里是views.py:
from django.shortcuts import render
from django.http import HttpResponse
from .models import Email
from django.core.exceptions import *
def index(request):
return render(request, 'personal/home.html')
def contact(request):
return render(request, 'personal/basic.html',{'content':['If you would like more information, leave your email.']})
def search(request):
if request.method == 'POST':
search_id = request.POST.get(name = search_id)
try:
user = Email.objects.get(name=search_id)
# do something with user
html = ("<H1>%s</H1>", user)
return HttpResponse(html)
except Email.DoesNotExist:
return HttpResponse("no such user")
else:
return render(request, 'basic.html')
这里是urls.py:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^content/', views.contact, name='content'),
]
这里是basic.html:
{% extends "personal/header.html" %}
{% block content %}
<style type="text/css">
h1 {
color: #2e6da4;
font-family: Chalkboard;
}
.text {
text-align: center;
}
</style>
{% for c in content %}
<h1>{{c}}</h1>
{% endfor %}
<div class="form-group">
<form method="POST" action="/content">
{% csrf_token %}
<input type="text" name="textfield">
<button type="submit">Submit</button>
</form>
</div>
{% endblock %}
【问题讨论】:
-
如果以下任何答案帮助您解决了问题,请将其标记为已接受。这是 StackOverflow 中的一个好习惯 :)
-
如果以下任何答案帮助您解决了问题,请将其标记为已接受。这是 StackOverflow 中的一个好习惯 :)
-
@nik_m 有机会我会尝试一下,如果可行的话我会接受 :)。谢谢你提醒我!
标签: python html django sqlite jinja2