python - 如何从搜索栏中获取用户输入以显示在页面中?姜戈
问题描述
Django 非常具有挑战性,我仍然需要习惯代码,目前,我只想在每次用户输入文本时显示搜索栏,它会像标题一样显示我真的不知道如何解释代码告诉每次用户在搜索栏中输入时,它应该像标题一样在页面上显示用户输入。
示例:用户在搜索栏中输入:cat 并显示 cat 标题
在当前页面显示:
结果搜索:“猫”
HTML 代码
<!-- Search Bar -->
<form action="{% url 'enc:search' %}" method="GET">
{% csrf_token %}
<input class="search" type="text" name="q" placeholder="Search">
</form>
在我的views.py中我只写了这段代码,我不知道写什么。
视图.py
def search (request):
title = request.GET.get("q", "")
网址.py
urlpatterns = [
path("", views.index, name="index"),
path("search/", views.search, name="search"),
现在只是搜索栏输入的一个简单显示,稍后我将在数据搜索中对其进行编码,其中有一些文件可以集成搜索,但现在我真的需要一些帮助,我的大脑正在破解。这有点可悲,我的意思是我知道这是一个简单的代码,但我不知道为什么我无法弄清楚。
如果您有关于如何更好地使用 Django 和 python 的提示,请帮助我,这对我有很大帮助,感谢您抽出宝贵的时间,我非常感谢。
解决方案
搜索页面.html:
<!-- Search Bar -->
<form action="{% url 'enc:search' %}" method="POST">
{% csrf_token %}
<input class="search" type="text" name="q" placeholder="Search">
<input type="submit" value="Submit">
</form>
视图.py:
from django.shortcuts import render
def search (request):
#defines what happens when there is a POST request
if request.method == "POST":
title = request.POST.get("q")
return render(request,'new_template.html', { 'title' : title })
#defines what happens when there is a GET request
else:
return render(request,'searchpage.html')
新模板.html:
<!DOCTYPE html>
{% load static %}
<html>
<head>
<title>search term</title>
</head>
<body>
<h1> {{ title }} </h1>
</body>
</html>