Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Sehr einfache Benutzereingabe in Django

Wenn ich das richtig verstehe, möchten Sie einige Eingaben des Benutzers entgegennehmen, die Datenbank abfragen und die Benutzerergebnisse basierend auf der Eingabe anzeigen. Dazu können Sie ein einfaches Django-Formular erstellen, das die Eingabe übernimmt. Dann können Sie den Parameter in GET an eine Ansicht übergeben die Datenbank nach dem Schlüsselwort anfordern und abfragen.

BEARBEITEN :Ich habe den Code bearbeitet. Es sollte jetzt funktionieren.

views.py

from django.shortcuts import render
from django.shortcuts import HttpResponse
from .models import Person
from django.core.exceptions import *

def index(request):
    return render(request, 'form.html')

def search(request):
    if request.method == 'POST':
        search_id = request.POST.get('textfield', None)
        try:
            user = Person.objects.get(name = search_id)
            #do something with user
            html = ("<H1>%s</H1>", user)
            return HttpResponse(html)
        except Person.DoesNotExist:
            return HttpResponse("no such user")  
    else:
        return render(request, 'form.html')

urls.py

from django.conf.urls import patterns, include, url
from People.views import *

urlpatterns = patterns('',
    url(r'^search/', search),
    url(r'^index/', index)
)

formular.html

<form method="POST" action="/search">
{% csrf_token %}
<input type="text" name="textfield">

<button type="submit">Upload text</button>
</form>

Stellen Sie außerdem sicher, dass Sie Ihre Vorlagen in einem separaten Ordner namens templates ablegen und fügen Sie dies in Ihrer settings.py hinzu :

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), '../templates').replace('\\','/'),
)