数据库 · 13 10 月, 2024

Django實現數據庫搜索及結果展示教程 (django搜索數據庫並顯示)

Django實現數據庫搜索及結果展示教程

Django是一個強大的Web框架,能夠幫助開發者快速構建高效的Web應用。在許多應用中,數據庫搜索功能是必不可少的,本文將介紹如何在Django中實現數據庫搜索及結果展示的功能。

環境準備

在開始之前,確保你已經安裝了Django。如果尚未安裝,可以使用以下命令進行安裝:

pip install django

接下來,創建一個新的Django項目:

django-admin startproject myproject

然後進入項目目錄並創建一個新的應用:

cd myproject
django-admin startapp myapp

設置數據模型

在Django中,數據模型是用來定義數據結構的。假設我們要搜索的數據是書籍信息,我們可以在myapp的models.py中定義一個Book模型:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=100)
    published_date = models.DateField()

    def __str__(self):
        return self.title

接下來,運行以下命令來創建數據庫表:

python manage.py makemigrations
python manage.py migrate

創建搜索表單

為了實現搜索功能,我們需要創建一個表單。在myapp的forms.py中,我們可以這樣定義:

from django import forms

class SearchForm(forms.Form):
    query = forms.CharField(label='Search', max_length=100)

編寫視圖函數

接下來,我們需要編寫一個視圖函數來處理搜索請求。在myapp的views.py中,我們可以這樣實現:

from django.shortcuts import render
from .models import Book
from .forms import SearchForm

def search(request):
    form = SearchForm()
    results = []
    
    if 'query' in request.GET:
        form = SearchForm(request.GET)
        if form.is_valid():
            query = form.cleaned_data['query']
            results = Book.objects.filter(title__icontains=query)
    
    return render(request, 'myapp/search.html', {'form': form, 'results': results})

創建模板

最後,我們需要創建一個模板來顯示搜索表單和結果。在myapp的templates/myapp/search.html中,我們可以這樣編寫:

<h1>書籍搜索</h1>
<form method="get">
    {{ form.as_p }}
    <button type="submit">搜索</button>
</form>

<h2>搜索結果</h2>
<ul>
    {% for book in results %}
        <li>{{ book.title }} - {{ book.author }} ({{ book.published_date }})</li>
    {% empty %}
        <li>沒有找到結果</li>
    {% endfor %}
</ul>

配置URL

最後,我們需要在myapp的urls.py中配置URL路由:

from django.urls import path
from .views import search

urlpatterns = [
    path('search/', search, name='search'),
]

總結

通過以上步驟,我們成功地在Django中實現了數據庫搜索及結果展示的功能。這個功能可以根據用戶的輸入在數據庫中查找相關的書籍信息,並將結果顯示在網頁上。Django的強大之處在於其簡單易用的API和靈活的架構,使得開發者能夠快速構建出功能豐富的Web應用。

如果你正在尋找穩定的 香港VPS 來部署你的Django應用,Server.HK提供多種選擇,滿足不同需求的用戶。無論是小型項目還是大型應用,我們的 云服務器 都能為你提供可靠的支持。