当前位置:实例文章 » 其他实例» [文章]Django 图书管理系统

Django 图书管理系统

发布人:shili8 发布时间:2025-02-24 07:12 阅读次数:0

**图书管理系统**

本文将介绍如何使用 Django 框架开发一个基本的图书管理系统。该系统将支持以下功能:

* 用户注册和登录* 图书添加、修改和删除* 图书查询和浏览* 借阅和归还图书**项目结构**

首先,我们需要创建 Django项目并配置基本的设置。

bashdjango-admin startproject book_systemcd book_systempython manage.py startapp books


然后,修改 `settings.py` 文件:

INSTALLED_APPS = [
 ...
 'books.apps.BooksConfig',
]

ROOT_URLCONF = 'book_system.urls'


**模型定义**

在 `models.py` 文件中,我们定义图书和用户的模型。

from django.db import modelsclass User(models.Model):
 username = models.CharField(max_length=255)
 password = models.CharField(max_length=255)

class Book(models.Model):
 title = models.CharField(max_length=255)
 author = models.CharField(max_length=255)
 publisher = models.CharField(max_length=255)
 publication_date = models.DateField()
 status = models.CharField(max_length=10, default='available')


**数据库迁移**

运行以下命令创建数据库表:

bashpython manage.py makemigrationspython manage.py migrate


**视图定义**

在 `views.py` 文件中,我们定义相关的视图函数。

from django.shortcuts import render, redirectfrom .models import User, Bookdef register(request):
 if request.method == 'POST':
 username = request.POST['username']
 password = request.POST['password']
 user = User(username=username, password=password)
 user.save()
 return redirect('login')
 return render(request, 'register.html')

def login(request):
 if request.method == 'POST':
 username = request.POST['username']
 password = request.POST['password']
 # todo: implement login logic return redirect('index')
 return render(request, 'login.html')

def index(request):
 books = Book.objects.all()
 return render(request, 'index.html', {'books': books})

def add_book(request):
 if request.method == 'POST':
 title = request.POST['title']
 author = request.POST['author']
 publisher = request.POST['publisher']
 publication_date = request.POST['publication_date']
 book = Book(title=title, author=author, publisher=publisher, publication_date=publication_date)
 book.save()
 return redirect('index')
 return render(request, 'add_book.html')

def delete_book(request):
 if request.method == 'POST':
 id = request.POST['id']
 Book.objects.filter(id=id).delete()
 return redirect('index')
 return render(request, 'delete_book.html')


**模板**

在 `templates` 目录下创建相关的 HTML 模板。

html<!-- register.html -->
<form method="post">
 {{ form.as_p }}
 <input type="submit" value="Register">
</form>


html<!-- login.html -->
<form method="post">
 {{ form.as_p }}
 <input type="submit" value="Login">
</form>


html<!-- index.html -->
<h1>图书列表</h1>
<ul>
 {% for book in books %}
 <li>{{ book.title }} ({{ book.author }})</li>
 {% endfor %}
</ul>


html<!-- add_book.html -->
<form method="post">
 {{ form.as_p }}
 <input type="submit" value="Add Book">
</form>


html<!-- delete_book.html -->
<form method="post">
 {{ form.as_p }}
 <input type="submit" value="Delete Book">
</form>


**URL配置**

在 `urls.py` 文件中,我们定义 URL 配置。

from django.urls import pathfrom .views import register, login, index, add_book, delete_bookurlpatterns = [
 path('register/', register, name='register'),
 path('login/', login, name='login'),
 path('', index, name='index'),
 path('add_book/', add_book, name='add_book'),
 path('delete_book/', delete_book, name='delete_book'),
]


**总结**

本文介绍了如何使用 Django 框架开发一个基本的图书管理系统。该系统支持用户注册和登录、图书添加、修改和删除、图书查询和浏览以及借阅和归还图书。

相关标签:django
其他信息

其他资源

Top