新聞中心
Django是一個強大的Python Web框架,擁有全面的開發(fā)功能和易于使用的模板語言,旨在使Web開發(fā)更加簡單。其中一個強大的功能就是實現數據庫搜索及結果展示。在本文中,我們將介紹Django如何實現這一功能。

1. 創(chuàng)建Django項目
我們需要創(chuàng)建一個新的Django項目。通過以下命令可以創(chuàng)建一個名為“myproject”的新項目:
“`
django-admin startproject myproject
“`
2. 創(chuàng)建Django應用程序
接下來,我們需要創(chuàng)建一個名為“search”的新Django應用程序。通過以下命令可以創(chuàng)建一個名為“search”的新應用程序:
“`
python manage.py startapp search
“`
3. 創(chuàng)建數據庫模型
接下來,我們需要創(chuàng)建一個數據庫模型,它將存儲我們要搜索和展示的數據。在本文中,我們將創(chuàng)建一個簡單的模型,其中包含一個名為“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
“`
在這里,我們創(chuàng)建了一個名為“Post”的模型,并定義了“title”和“content”兩個字段。然后,我們覆蓋了“__str__”方法,以便在對象的字符串表示中返回“title”字段的值。
4. 遷移數據庫
接下來,我們需要遷移數據庫以創(chuàng)建我們的新模型。通過以下命令可以完成遷移:
“`
python manage.py makemigrations
python manage.py migrate
“`
5. 創(chuàng)建數據
接下來,我們需要創(chuàng)建一些數據,以便在我們的搜索和結果展示中使用。打開“search/admin.py”文件,并將以下代碼添加到文件中:
“`
from django.contrib import admin
from .models import Post
admin.site.register(Post)
“`
在這里,我們注冊了我們創(chuàng)建的“Post”模型。這將創(chuàng)建一個名為“Posts”的鏈接,我們可以在其中創(chuàng)建、編輯和刪除Post對象。
現在,我們可以通過打開Django管理界面(http://127.0.0.1:8000/admin/)來創(chuàng)建一些數據。單擊“Posts”鏈接,然后單擊“Add”按鈕。在這里,您可以輸入“title”和“content”字段的值。創(chuàng)建數據之后,我們可以繼續(xù)實現搜索的代碼。
6. 創(chuàng)建搜索表單
為了實現搜索,我們需要創(chuàng)建一個搜索表單。在“search”應用程序中創(chuàng)建一個名為“forms.py”的新文件,并將以下代碼添加到文件中:
“`
from django import forms
class SearchForm(forms.Form):
query = forms.CharField()
“`
在這里,我們創(chuàng)建了一個名為“SearchForm”的表單,并定義了一個名為“query”的CharField。該表單將請求一個查詢字符串,我們將使用這個查詢字符串在數據庫中搜索匹配的Post對象。
7. 創(chuàng)建搜索視圖
接下來,我們需要創(chuàng)建一個搜索視圖,它將處理從搜索表單POST的查詢字符串并返回匹配的Post對象。在“search”應用程序中創(chuàng)建一個名為“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對象。
視圖首先創(chuàng)建了一個名為“form”的SearchForm對象,并將其與請求的POST數據綁定。然后,我們創(chuàng)建了一個名為“results”的空列表。
如果請求的方法是POST并且表單有效,則我們通過查詢字符串過濾Post對象并將其存儲在“results”中。
視圖使用“search.html”模板呈現響應。我們將在下一步中創(chuàng)建這個模板。
8. 創(chuàng)建搜索模板
我們需要創(chuàng)建一個名為“search.html”的模板,它將呈現搜索表單和搜索結果。在“search/templates”文件夾中創(chuàng)建一個新文件夾,并將其命名為“search”。在“search/templates/search”中創(chuàng)建一個名為“search.html”的新文件,并將以下代碼添加到文件中:
“`
{% extends ‘base.html’ %}
{% block content %}
Search
{% csrf_token %}
{{ form.as_p }}
Search
{% if results %}
Results
- {{ result.title }}
{% for result in results %}
{% endfor %}
{% endif %}
{% endblock %}
“`
在這里,我們使用Django模板繼承機制擴展了名為“base.html”的基本模板。然后,我們在模板中添加了一個名為“content”的塊,其中包含一個搜索表單和一個名為“results”的結果列表。
表單使用POST方法提交到名為“search”的URL。用于生成表單代碼的“{{ form.as_p }}”模板標記用于在頁面上呈現它。我們在“{% if results %}”行上檢查是否有結果,并在頁面上呈現它們。
9. 呈現搜索輸出
現在,我們可以啟動開發(fā)服務器并在瀏覽器中導航到http://127.0.0.1:8000/search/,以實際查看搜索功能。輸入要搜索的查詢字符串并單擊“Search”按鈕。
如果存在匹配的Post對象,則它們將在頁面上列表中顯示出來。否則,將顯示一個空列表。
在本文中,我們演示了如何使用Django實現數據庫搜索功能。我們創(chuàng)建了一個Django項目和應用程序,定義了一個簡單的數據庫模型,并使用Django管理界面創(chuàng)建了一些示例數據。接下來,我們創(chuàng)建了一個搜索表單和一個搜索視圖來處理用戶查詢,并使用Django模板呈現搜索結果。通過這個實現,我們可以輕松地為Django應用程序添加強大的搜索功能。
相關問題拓展閱讀:
- django怎么現實數據庫了里的圖片?
- django 怎么查詢mongodb數據
- Django里面怎么實現數據庫視圖啊 就是虛擬表
django怎么現實數據庫了里的圖片?
數據庫里只廳桐存對應的照片地址啦···· 比如 upload/images/xxx.jpg P頁面就這樣顯示咯 創(chuàng)新互聯(lián)服務器托管擁有成都T3+級標準機房資源,具備完善的安防設施、三線及BGP網絡接入帶寬達10T,機柜接入千兆交換機,能夠有效保證服務器托管業(yè)務安全、可靠、穩(wěn)定、高效運行;創(chuàng)新互聯(lián)專注于成都服務器托管租用十余年,得到成都等地區(qū)行業(yè)客戶的一致認可。
分享題目:Django實現數據庫搜索及結果展示教程(django搜索數據庫并顯示)
網站鏈接:http://fisionsoft.com.cn/article/djedosd.html


咨詢
建站咨詢
