gpt4 book ai didi

python - 如何在Django中为一列mysql数据创建一个非常简单的搜索 View ?

转载 作者:行者123 更新时间:2023-11-29 23:20:57 24 4
gpt4 key购买 nike

我四处搜索,发现大多数都指向 Julien Phalip 创建的搜索:http://julienphalip.com/post/2825034077/adding-search-to-a-django-site-in-a-snap

答案似乎就在这里:Very simple user input in django

但是,我对 Django 非常陌生,想要创建一个 View ,让我真正了解正在发生的事情,因此我一直在阅读官方 Django 和 Tango with Rango 教程,但我没有看到一个简单的示例来说明我的情况试图理解简单的表单搜索。我的主要问题是为什么示例中使用 POST 而不是 GET?我认为 POST 用于在 mysql 中“创建”数据条目,而 GET 用于查找/搜索数据条目?我是否遗漏了使用其中一种与另一种的基本知识?

我的应用程序中有以下简单示例:

模型.py

class hardware(models.Model):
text = models.CharField(max_length=200, unique=TRUE)
pub_date = models.DateTimeField(default=timezone.now)
def __unicode__(self):
return self.text
class Barcode(models.Model):
hardware = models.ForeignKey(Hardware)
text = models.CharField(max_length=50)
pub_date = models.DateTimeField(default=timezone.now)
def __unicode__(self):
return self.text

表单.py

class HardwareForm(forms.modelForm):
class Meta:
model = Hardware
fields = ['text'}

View .py

def hardware_search(request):
if request.method == 'POST':
search_id = request.POST.get('textfield', None)
try:
hardwarename = Hardware.objects.get(text = search_id)
html = ("<H1>%s</H1>", hardwarename)
return HttpResponse(html)
except Hardware.DoesNotExist:
return HttpResponse("no such hardware found")
else:
return render(request, 'search.html')

搜索.html

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

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

我的问题是,这是请求用户输入来搜索并生成搜索结果的最简单方法吗?为什么使用POST?我插入了这段代码,它似乎确实有效,但我就是不明白为什么。

其次,如何显示关联的外键类以及主类“硬件”搜索结果? ForeignKey关联是否也提供了显示该数据的快捷方式?

谢谢!

最佳答案

W3 对 POST 与 GET 进行了精彩的介绍 here 。关于为什么有人可能使用 POST 或 GET 以及他们的角色应该是什么,有很多话要说。您可能对用户(浏览器)角度的差异更感兴趣。在浏览器中使用 POST 和 GET 的最大区别在于 GET 请求将显示 URL 中的参数。将您的表单更改为 GET 以便亲自查看。用户将被带到:

/hardware_search.html?textfield=上传%20text

与表单操作为 POST 时它们被带到的位置相反:

/hardware_search.html

textfield 字段的值仍会发送到服务器,但在 URL 中不可见。

表单提交中 GET 和 POST 的行为还有很多其他差​​异。我强烈建议您阅读 W3 的介绍。

关于python - 如何在Django中为一列mysql数据创建一个非常简单的搜索 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27307546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com