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 框架开发一个基本的图书管理系统。该系统支持用户注册和登录、图书添加、修改和删除、图书查询和浏览以及借阅和归还图书。