Django是一个强大的Python Web框架,拥有全面的开发功能和易于使用的模板语言,旨在使Web开发更加简单。其中一个强大的功能就是实现数据库搜索及结果展示。在本文中,我们将介绍Django如何实现这一功能。
1. 创建Django项目
我们需要创建一个新的Django项目。通过以下命令可以创建一个名为“myproject”的新项目:
“`
django-admin startproject myproject
“`
2. 创建Django应用程序
接下来,我们需要创建一个名为“search”的新Django应用程序。通过以下命令可以创建一个名为“search”的新应用程序:
“`
python manage.py startapp search
“`
3. 创建数据库模型
接下来,我们需要创建一个数据库模型,它将存储我们要搜索和展示的数据。在本文中,我们将创建一个简单的模型,其中包含一个名为“title”的CharField和一个名为“content”的TextField。
打开“search/models.py”,并将以下代码添加到文件中:
“`
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
def __str__(self):
return self.title
“`
在这里,我们创建了一个名为“Post”的模型,并定义了“title”和“content”两个字段。然后,我们覆盖了“__str__”方法,以便在对象的字符串表示中返回“title”字段的值。
4. 迁移数据库
接下来,我们需要迁移数据库以创建我们的新模型。通过以下命令可以完成迁移:
“`
python manage.py makemigrations
python manage.py migrate
“`
5. 创建数据
接下来,我们需要创建一些数据,以便在我们的搜索和结果展示中使用。打开“search/admin.py”文件,并将以下代码添加到文件中:
“`
from django.contrib import admin
from .models import Post
admin.site.register(Post)
“`
在这里,我们注册了我们创建的“Post”模型。这将创建一个名为“Posts”的链接,我们可以在其中创建、编辑和删除Post对象。
现在,我们可以通过打开Django管理界面(http://127.0.0.1:8000/admin/)来创建一些数据。单击“Posts”链接,然后单击“Add”按钮。在这里,您可以输入“title”和“content”字段的值。创建数据之后,我们可以继续实现搜索的代码。
6. 创建搜索表单
为了实现搜索,我们需要创建一个搜索表单。在“search”应用程序中创建一个名为“forms.py”的新文件,并将以下代码添加到文件中:
“`
from django import forms
class SearchForm(forms.Form):
query = forms.CharField()
“`
在这里,我们创建了一个名为“SearchForm”的表单,并定义了一个名为“query”的CharField。该表单将请求一个查询字符串,我们将使用这个查询字符串在数据库中搜索匹配的Post对象。
7. 创建搜索视图
接下来,我们需要创建一个搜索视图,它将处理从搜索表单POST的查询字符串并返回匹配的Post对象。在“search”应用程序中创建一个名为“views.py”的新文件,并将以下代码添加到文件中:
“`
from django.shortcuts import render
from .models import Post
from .forms import SearchForm
def search(request):
form = SearchForm(request.POST or None)
results = []
if request.method == ‘POST’ and form.is_valid():
query = form.cleaned_data[‘query’]
results = Post.objects.filter(title__icontns=query)
return render(request, ‘search.html’, {‘form’: form, ‘results’: results})
“`
在这里,我们定义了一个名为“search”的视图,它将处理从搜索表单POST的查询字符串,并在数据库中查找匹配的Post对象。
视图首先创建了一个名为“form”的SearchForm对象,并将其与请求的POST数据绑定。然后,我们创建了一个名为“results”的空列表。
如果请求的方法是POST并且表单有效,则我们通过查询字符串过滤Post对象并将其存储在“results”中。
视图使用“search.html”模板呈现响应。我们将在下一步中创建这个模板。
8. 创建搜索模板
我们需要创建一个名为“search.html”的模板,它将呈现搜索表单和搜索结果。在“search/templates”文件夹中创建一个新文件夹,并将其命名为“search”。在“search/templates/search”中创建一个名为“search.html”的新文件,并将以下代码添加到文件中:
“`
{% extends ‘base.html’ %}
{% block content %}
{% csrf_token %}
{{ form.as_p }}
Search
{% if results %}
{% for result in results %}
{% endfor %}
{% endif %}
{% endblock %}
“`
在这里,我们使用Django模板继承机制扩展了名为“base.html”的基本模板。然后,我们在模板中添加了一个名为“content”的块,其中包含一个搜索表单和一个名为“results”的结果列表。
表单使用POST方法提交到名为“search”的URL。用于生成表单代码的“{{ form.as_p }}”模板标记用于在页面上呈现它。我们在“{% if results %}”行上检查是否有结果,并在页面上呈现它们。
9. 呈现搜索输出
现在,我们可以启动开发服务器并在浏览器中导航到http://127.0.0.1:8000/search/,以实际查看搜索功能。输入要搜索的查询字符串并单击“Search”按钮。
如果存在匹配的Post对象,则它们将在页面上列表中显示出来。否则,将显示一个空列表。
在本文中,我们演示了如何使用Django实现数据库搜索功能。我们创建了一个Django项目和应用程序,定义了一个简单的数据库模型,并使用Django管理界面创建了一些示例数据。接下来,我们创建了一个搜索表单和一个搜索视图来处理用户查询,并使用Django模板呈现搜索结果。通过这个实现,我们可以轻松地为Django应用程序添加强大的搜索功能。
相关问题拓展阅读:
数据库里只厅桐存对应的照片地址啦···· 比如 upload/images/xxx.jpg P页面就这样显示咯 创新互联服务器托管拥有成都T3+级标准机房资源,具备完善的安防设施、三线及BGP网络接入带宽达10T,机柜接入千兆交换机,能够有效保证服务器托管业务安全、可靠、稳定、高效运行;创新互联专注于成都服务器托管租用十余年,得到成都等地区行业客户的一致认可。
本文题目:Django实现数据库搜索及结果展示教程(django搜索数据库并显示)
本文来源:http://www.shufengxianlan.com/qtweb/news44/413944.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联