Django 基础教程

Django 查询

Django 展示数据

Django Admin

Django 模板

Django 表单组件

Django 高级

Django FAQ

django图书馆图书管理系统


创建一个简单的 Django 图书馆图书管理系统,我们可以按照以下模块来实现:

  1. 图书模型(Book Model):定义图书的属性,例如书名、作者、出版日期等。
  2. 图书馆模型(Library Model):定义图书馆的属性,例如名称、地址等。
  3. 图书借阅模型(Borrowing Model):定义图书借阅的属性,例如借阅日期、归还日期等。
  4. URL 配置:设置网站的 URL 路由。
  5. 视图函数:处理不同 URL 的请求。
  6. 模板:渲染 HTML 页面。

下面我们逐步实现这些模块。

创建 Django 项目和应用

首先,创建一个 Django 项目并启动应用:

django-admin startproject library_management_system
cd library_management_system
python manage.py startapp library

定义模型

library 应用的 models.py 文件中,定义图书模型(Book Model)、图书馆模型(Library Model)和图书借阅模型(Borrowing Model):

# library/models.py

from django.db import models

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

    def __str__(self):
        return self.title

class Library(models.Model):
    name = models.CharField(max_length=100)
    address = models.CharField(max_length=200)

    def __str__(self):
        return self.name

class Borrowing(models.Model):
    book = models.ForeignKey(Book, on_delete=models.CASCADE)
    library = models.ForeignKey(Library, on_delete=models.CASCADE)
    borrow_date = models.DateField()
    return_date = models.DateField()

    def __str__(self):
        return f"{self.book.title} - {self.library.name}"

运行数据库迁移

运行以下命令来进行数据库迁移:

python manage.py makemigrations
python manage.py migrate

创建超级用户

运行以下命令来创建超级用户:

python manage.py createsuperuser

按照提示设置用户名、电子邮件和密码。

创建 URL 配置

library 应用的 urls.py 文件中,定义 URL 配置:

# library/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('books/', views.BookListView.as_view(), name='book_list'),
    path('book/<int:pk>/', views.BookDetailView.as_view(), name='book_detail'),
    path('libraries/', views.LibraryListView.as_view(), name='library_list'),
    path('library/<int:pk>/', views.LibraryDetailView.as_view(), name='library_detail'),
]

编写视图函数

library 应用的 views.py 文件中,编写视图函数:

# library/views.py

from django.shortcuts import render
from django.views.generic import ListView, DetailView
from .models import Book, Library

def index(request):
    return render(request, 'index.html')

class BookListView(ListView):
    model = Book
    template_name = 'book_list.html'
    context_object_name = 'books'

class BookDetailView(DetailView):
    model = Book
    template_name = 'book_detail.html'
    context_object_name = 'book'

class LibraryListView(ListView):
    model = Library
    template_name = 'library_list.html'
    context_object_name = 'libraries'

class LibraryDetailView(DetailView):
    model = Library
    template_name = 'library_detail.html'
    context_object_name = 'library'

编写模板

library 应用中创建 templates 文件夹,并在其中创建以下模板文件:

a. index.html

<!-- templates/index.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Library Management System</title>
</head>
<body>
    <h1>Welcome to the Library Management System</h1>
    <p>Explore the available books and libraries.</p>
</body>
</html>

b. book_list.html

<!-- templates/book_list.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Book List</title>
</head>
<body>
    <h1>Book List</h1>

        {% for book in books %}*   <a href="{% url 'book_detail' book.pk %}">{{ book.title }}</a>
</body>
</html>

c. book_detail.html

<!-- templates/book_detail.html -->
<!DOCTYPE html>
<html>
<head>
    <title>{{ book.title }} Details</title>
</head>
<body>
    <h1>{{ book.title }} Details</h1>
    <p><strong>Title:</strong> {{ book.title }}</p>
    <p><strong>Author:</strong> {{ book.author }}</p>
    <p><strong>Publication Date:</strong> {{ book.publication_date }}</p>
</body>
</html>

d. library_list.html

<!-- templates/library_list.html -->
<!DOCTYPE html>
<html>
<head>
    <title>Library List</title>
</head>
<body>
    <h1>Library List</h1>

        {% for library in libraries %}*   <a href="{% url 'library_detail' library.pk %}">{{ library.name }}</a>
</body>
</html>

e. library_detail.html

<!-- templates/library_detail.html -->
<!DOCTYPE html>
<html>
<head>
    <title>{{ library.name }} Details</title>
</head>
<body>
    <h1>{{ library.name }} Details</h1>
    <p><strong>Name:</strong> {{ library.name }}</p>
    <p><strong>Address:</strong> {{ library.address }}</p>
</body>
</html>

运行开发服务器:

运行以下命令来启动 Django 开发服务器:

python manage.py runserver

现在,您可以在浏览器中访问 http://127.0.0.1:8000/ 来查看图书馆图书管理系统。您可以在网站上浏览图书列表、图书馆列表,并查看每本图书和每个图书馆的详细信息。

请注意,这只是一个简单的实现,图书管理系统通常需要更多功能和复杂性,例如用户认证、借阅管理、管理员权限等。以上代码仅供演示基

然后按照以下步骤进行开发:###创建Django项目和应用###定义模型打开books/models.py文件中定义视图函数:###创建模板 ...
Django是一个功能强大的Web应用程序框架,它提供了一系列的内置功能,其中包括角色权限管理系统。auth`应用程序已添加到`INSTAL ...
如果没有安装,可以使用以下命令安装:现在,让我们开始实现学生图书管理网站:###创建Django项目和应用首先,创建一个Django项目和一 ...
当谈到Pythonweb开发框架时,Django是一个非常流行和强大的选择。MVC架构:Django使用MTV(模型、模板、视图)模式,类似 ...
在Django中,查询是通过模型管理器(ModelManager)来实现的。示例:假设我们有一个名为Book的模型,其中包含图书的信息,我们 ...