Mysql
 sql >> Base de données >  >> RDS >> Mysql

Saisie utilisateur très simple dans Django

Si je comprends bien, vous voulez prendre une entrée de l'utilisateur, interroger la base de données et afficher les résultats de l'utilisateur en fonction de l'entrée. Pour cela, vous pouvez créer un simple formulaire django qui prendra l'entrée. Ensuite, vous pouvez passer le paramètre à une vue dans GET demander et interroger la base de données pour le mot-clé.

MODIFIER :J'ai modifié le code. Cela devrait fonctionner maintenant.

vues.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)
)

form.html

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

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

Assurez-vous également que vous placez vos modèles dans un dossier séparé nommé templates et ajoutez ceci dans votre settings.py :

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