大佬教程收集整理的这篇文章主要介绍了在 Django 中制作搜索栏,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在 django 中创建一个搜索栏并观看了几个 youtube 教程,但没有一个奏效。我想要做的是制作一个搜索栏,重定向到文章/what_you_searched_for,或者如果不可能显示包含搜索的结果。如果有人有足够的时间,他们可以告诉我如何做到这两点:)。 在 vIEws.py 中:
def index(request):
queryset = article.objects.all()
number_of_records = article.objects.count()
random_page = random.randint(1,number_of_records)
context = {
"object_List": queryset,"random_page": random_page
}
# query = ""
# if request.GET:
# query = request.GET['q']
# context['query'] = str(query)
entrIEs = util.List_entrIEs()
return render(request,"encyclopedia/index.HTML",context)
#{
#"entrIEs": util.List_entrIEs(),#"random_page": random_page,#})
def dynamic_articles_vIEw(request,my_ID):
obj = article.objects.get(ID= my_ID)
number_of_records = article.objects.count()
random_page = random.randint(1,number_of_records)
context = {
"object": obj,"random_page": random_page
}
return render(request,"encyclopedia/article_detail.HTML",context)
在 index.HTML 中:
{% extends "encyclopedia/layout.HTML" %}
{% block Title %}
Encyclopedia
{% endblock %}
{% block body %}
<h1 ID="demo" onclick="add_article()">Article</h1>
<ul>
{% for instance in object_List %}
<li><a href = "http://127.0.0.1:8000/articles/{{instance.ID}}/">{{instance.Title}}</a></li>
{% endfor %}
</ul>
{% endblock %}
layout.HTML: ------------在这里搜索栏 ---------
{% load static %}
<!DOCTYPE HTML>
<HTML lang="en">
<head>
<Title>{% block Title %}{% endblock %}</Title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/CSS/bootstrap.min.CSS" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5paxtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link href="{% static 'encyclopedia/styles.CSS' %}" rel="stylesheet">
</head>
<body>
<div class="row">
<div class="sIDebar col-lg-2 col-md-3">
<h2>Wiki</h2>
<form action = "/articles/{{q}}"> __________EXACTLY HERE ________
<input class="search" type="text" name="q" placeholder="Search...">
</form>
<div>
<a href="{% url 'index' %}">Home</a>
</div>
<div>
<a href = "/new_article" >Create New Article</a>
</div>
<div>
<a href = "http://127.0.0.1:8000/articles/{{random_page}}">Random Page</a>
</div>
{% block nav %}
{% endblock %}
</div>
<div class="main col-lg-10 col-md-9">
{% block body %}
{% endblock %}
</div>
</div>
</body>
</HTML>
网址:
from django.contrib import admin
from django.urls import include,path
from encyclopedia import vIEws
from encyclopedia.vIEws import index,new_article,dynamic_articles_vIEw
urlpatterns = [
path('admin/',admin.site.urls),path('',include("encyclopedia.urls")),path('new_article/',new_article),path('home/',index,name = 'home'),path('articles/<int:my_ID>/',dynamic_articles_vIEw,name = 'articless')
]
百科全书网址(其他文件夹):
from django.urls import path
from . import vIEws
urlpatterns = [
path("",vIEws.index,name="index"),path("",vIEws.new_article,name="new_article")
]
如果需要,我会评论模型和表格,但我不想让我的问题太长。
最简单的方法是在您的模板中添加一个 GET form
和一个 search
输入,而无需设置表单的操作:
<form action="">
<input type="text" name="search" placeholder="Search by title" value="{{request.GET.title}}">
<input type="submit" value="Search">
</form>
然后在 views.py
中你得到值。如果给出,则按它过滤:
def dynamic_articles_view(request):
context['object_list'] = article.objects.filter(title__icontains=request.GET.get('search'))
return render(request,"encyclopedia/article_detail.html",context)
以上是大佬教程为你收集整理的在 Django 中制作搜索栏全部内容,希望文章能够帮你解决在 Django 中制作搜索栏所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。