当前位置: 首页 > 面试题库 >

django中非常简单的用户输入

微生翼
2023-03-14
问题内容

我的基础难题是我无法理解django模板,视图和url是如何捆绑在一起的……提示用户输入字符串,然后使用该字符串查询数据库的最简单,最简单的最小方法是什么(最好是w / python模型而不是原始sql查询)?我应该使用GET和POST方法吗?我应该使用表格吗?我需要使用模板还是可以使用通用视图?

当我尝试提交输入时,它只是重新加载了输入页面。

views.py:

from django.shortcuts import render
from django.shortcuts import HttpResponse
from People.models import Person

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

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

urls.py

from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    url(r'^People/', 'People.views.index'), 
    url(r'^People/send/', 'People.views.search'),
)

模板:

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

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

我是否缺少某些东西或做错了什么?


问题答案:

如果我理解正确,则希望从用户那里获取一些输入,查询数据库并根据输入显示用户结果。为此,你可以创建一个简单的django表单,该表单将接受输入。然后,你可以将参数传递给GET请求中的视图,并在数据库中查询关键字。

编辑:我已经编辑了代码。现在应该可以工作了。

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

form.html

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

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

另外,请确保将模板放置在名为的单独文件夹中templates,并将其添加到你的中settings.py:

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


 类似资料:
  • 问题内容: 我试图找到一个非常简单,流畅,轻巧的javascript或jquery字幕。我已经尝试过丝绸选框之类的东西,但不适用于我正在使用的应用程序。因此,越短越好,越好-并且越容易调试。有人知道字幕易于实现的JavaScript替换吗? 码 问题答案: 希望这对您有所帮助,加油! html jQuery代码

  • 本文向大家介绍非常简单的Shell菜单脚本,包括了非常简单的Shell菜单脚本的使用技巧和注意事项,需要的朋友参考一下 本文给大家分享一个自己简单编写的Shell菜单脚本,傻瓜式的人机交互,人人都可以操作linux。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 这些方法如下所示: 编辑 我尝试使用、和。 我曾尝试直接在上调用,但它也没有捕捉到这一点。

  • 问题内容: 我只是在玩输入和变量。我正在尝试运行一个简单的功能: 我想提示用户输入,,和。最简单,最干净的方法是什么? 问题答案: 您可以使用该函数提示用户输入,并将用户输入从字符串转换为浮点数: 如果您使用的是python 2,请改用。

  • 问题内容: 我正在使用HtmlUnit 2.9(本月发布的稳定版本)。您是否知道以下代码为何不起作用? 我还要添加jstack的结果。注意,我标记了一个不断重复的部分: 我认为关于自动加载框架存在某种循环。如果是这样,是否有任何方法可以禁用该行为以打破循环? 提前致谢! 问题答案: 好吧,尽管这是一个可怕的解决方案(实际上,解决方法……),但我最终决定按照HtmlUnit的开发人员之一的建议,在H

  • 本文向大家介绍Django 简单文本输入小部件,包括了Django 简单文本输入小部件的使用技巧和注意事项,需要的朋友参考一下 示例 小部件最简单的示例是自定义文本输入。例如,要创建一个<input type="tel">,您必须继承TextInput并设置input_type为'tel'。