Django 图书借书系统

news2025/1/19 10:36:21

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

前言

一、Django是什么?

二、django安装

1.安装

2.需要的pip list 安装

三、django 建立图书馆管理系统

1.建立项目

建立项目locallibrary

2.参加APP

建立数据库sqllite的数据库

 建立用user的createsuper 超级用户

图书后台管理系统

新建作者

新建图书

 新建类型

 新建语言

​编辑借书 

图书管理系统页面 

​编辑 

作者列表

 已借图书列表​编辑

 我借的图书列表​编辑

 图书管理系统​编辑

总结



前言

Django 快速建立图书借书系统


提示:以下是本篇文章正文内容,下面案例可供参考

一、Django是什么?

Django是高水准的Python编程语言驱动的一个开源模型.视图,控制器风格的Web应用程序框架,它起源于开源社区。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。这也正是OpenStack的Horizon组件采用这种架构进行设计的主要原因。另外,在Dj ango框架中,还包含许多功能强大的第三方插件,使得Django具有较强的可扩展性  。Django 项目源自一个在线新闻 Web 站点。Django 框架的核心组件有:

  1. 用于创建模型的对象关系映射;

  2. 为最终用户设计较好的管理界面;

  3. URL 设计;

  4. 设计者友好的模板语言;

  5. 缓存系统。

二、django安装

1.安装

代码如下(示例):

pip install django

2.需要的pip list 安装

代码如下(示例):

dj-database-url==0.5.0
Django==4.0.2
gunicorn==20.1.0
psycopg2-binary==2.9.3
wheel==0.37.1
whitenoise==6.0.0

三、django 建立图书馆管理系统

1.建立项目

代码如下(示例):

django-admin startproject locallibrary

建立项目locallibrary

 

2.参加APP

python manage.py startapp catalog

urls.py 是后来进行创建。 


先建立models.py文件

from django.db import models

# Create your models here.

from django.urls import reverse  # To generate URLS by reversing URL patterns


class Genre(models.Model):
    """Model representing a book genre (e.g. Science Fiction, Non Fiction)."""
    name = models.CharField(
        max_length=200,
        help_text="Enter a book genre (e.g. Science Fiction, French Poetry etc.)"
        )

    def __str__(self):
        """String for representing the Model object (in Admin site etc.)"""
        return self.name


class Language(models.Model):
    """Model representing a Language (e.g. English, French, Japanese, etc.)"""
    name = models.CharField(max_length=200,
                            help_text="Enter the book's natural language (e.g. English, French, Japanese etc.)")

    def __str__(self):
        """String for representing the Model object (in Admin site etc.)"""
        return self.name


class Book(models.Model):
    """Model representing a book (but not a specific copy of a book)."""
    title = models.CharField(max_length=200)
    author = models.ForeignKey('Author', on_delete=models.SET_NULL, null=True)
    # Foreign Key used because book can only have one author, but authors can have multiple books
    # Author as a string rather than object because it hasn't been declared yet in file.
    summary = models.TextField(max_length=1000, help_text="Enter a brief description of the book")
    isbn = models.CharField('ISBN', max_length=13,
                            unique=True,
                            help_text='13 Character <a href="https://www.isbn-international.org/content/what-isbn'
                                      '">ISBN number</a>')
    genre = models.ManyToManyField(Genre, help_text="Select a genre for this book")
    # ManyToManyField used because a genre can contain many books and a Book can cover many genres.
    # Genre class has already been defined so we can specify the object above.
    language = models.ForeignKey('Language', on_delete=models.SET_NULL, null=True)
    
    class Meta:
        ordering = ['title', 'author']

    def display_genre(self):
        """Creates a string for the Genre. This is required to display genre in Admin."""
        return ', '.join([genre.name for genre in self.genre.all()[:3]])

    display_genre.short_description = 'Genre'

    def get_absolute_url(self):
        """Returns the url to access a particular book instance."""
        return reverse('book-detail', args=[str(self.id)])

    def __str__(self):
        """String for representing the Model object."""
        return self.title


import uuid  # Required for unique book instances
from datetime import date

from django.contrib.auth.models import User  # Required to assign User as a borrower


class BookInstance(models.Model):
    """Model representing a specific copy of a book (i.e. that can be borrowed from the library)."""
    id = models.UUIDField(primary_key=True, default=uuid.uuid4,
                          help_text="Unique ID for this particular book across whole library")
    book = models.ForeignKey('Book', on_delete=models.RESTRICT, null=True)
    imprint = models.CharField(max_length=200)
    due_back = models.DateField(null=True, blank=True)
    borrower = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, blank=True)

    @property
    def is_overdue(self):
        """Determines if the book is overdue based on due date and current date."""
        return bool(self.due_back and date.today() > self.due_back)

    LOAN_STATUS = (
        ('d', 'Maintenance'),
        ('o', 'On loan'),
        ('a', 'Available'),
        ('r', 'Reserved'),
    )

    status = models.CharField(
        max_length=1,
        choices=LOAN_STATUS,
        blank=True,
        default='d',
        help_text='Book availability')

    class Meta:
        ordering = ['due_back']
        permissions = (("can_mark_returned", "Set book as returned"),)

    def __str__(self):
        """String for representing the Model object."""
        return '{0} ({1})'.format(self.id, self.book.title)


class Author(models.Model):
    """Model representing an author."""
    first_name = models.CharField(max_length=100)
    last_name = models.CharField(max_length=100)
    date_of_birth = models.DateField(null=True, blank=True)
    date_of_death = models.DateField('died', null=True, blank=True)

    class Meta:
        ordering = ['last_name', 'first_name']

    def get_absolute_url(self):
        """Returns the url to access a particular author instance."""
        return reverse('author-detail', args=[str(self.id)])

    def __str__(self):
        """String for representing the Model object."""
        return '{0}, {1}'.format(self.last_name, self.first_name)

建立数据库sqllite的数据库

python3 manage.py makemigrations
python3 manage.py migrate

 建立用user的createsuper 超级用户

图书后台管理系统

作者类、图书、图书借、类型、图书语言

进入Admin的输入必要数据

新建作者

新建图书

 新建类型

 新建语言

借书 

后台建立5个基本数据,目前建立一个1本书

图书管理系统页面 

 

作者列表

 已借图书列表

 我借的图书列表

 图书管理系统

总结

图书管理系统,用django 快速生成的增加修改删除,数据库也是内置的数据库

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93239.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计高校医疗健康服务系统的设计与实现Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

java计算机毕业设计基于安卓Android的婚恋相亲app

项目介绍 网络的广泛应用给生活带来了十分的便利。所以把网上婚恋相亲系统与现在网络相结合,利用java技术建设网上婚恋相亲系统APP,实现网上婚恋相亲系统的信息化。则对于进一步提高网上婚恋相亲系统发展,丰富网上婚恋相亲系统经验能起到不少的促进作用。 网上婚恋相亲系统APP能…

气泡水位计的安装方法与安装注意事项

气泡水位计它由活塞泵产生的压缩空气流经测量管和气泡室&#xff0c;进入被测的水体中&#xff0c;测量管中的静压力与气泡室上的水位高度成正比。那么接下来就请跟随小编的脚步一起来了解下气泡水位计的安装方法与安装注意事项的相关内容。 气泡式水位计的安装方法: 1.气管安装…

JDK的使用——Java开发第一步

JDK的使用——Java开发第一步 1 什么是JDK JDK是 Java 语言的软件开发工具包&#xff0c;是整个java开发的核心&#xff0c;使用Java开发第一步就是要在计算机上安装JDK。 JDK主要包含三个部分&#xff1a; 1 JAVA开发工具(jdk\bin) 2 基础开发库(jdk\jre\lib) 3 基础开发库…

Codeforces Round #762 (Div. 3) E. MEX and Increments

https://codeforces.com/contest/1619/problem/E 翻译&#xff1a; Dmitry有一个&#x1d45b;非负整数数组&#x1d44e;1&#xff0c;&#x1d44e;2&#xff0c;…&#xff0c;&#x1d44e;&#x1d45b;。 在一次操作中&#xff0c;Dmitry可以选择任意索引&#x1d457…

SAP ABAP——数据类型(六)【预定义基本数据类型详解】

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…

编译robotics_transformer

编译tensor2robot GitHub - google-research/tensor2robot: Distributed machine learning infrastructure for large-scale robotics research 2.编译proto文件为python文件 robotrobot:~/ref$ mkdir protoc_3.3 robotrobot:~/ref$ cd protoc_3.3/ robotrobot:~/ref/protoc…

三、HTTP 接口自动化测试

HTTP 接口自动化测试3.1 HttpLibrary.HTTP 库的使用安装导入3.1.1 Create Http Context3.2 RequestsLibrary 库的使用安装导入3.2.1 Create Session 和 Get Request1. Create Session2. Get Request3.2.2 Post Request3.2.3 RequestsLibrary 库的其他关键字3.3 RESTinstance 库…

RK3568平台开发系列讲解(摄像头篇)使用 Camera 的步骤

🚀返回专栏总目录 文章目录 一、使用 Camera 的步骤二、使用 SurfaceView 预览显示 Camera 数据沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍如何使用Camera。 一、使用 Camera 的步骤 说下 Camera 的操作步骤,后面给出实例,请结合代码理解分析: 获…

[附源码]Python计算机毕业设计高校体侧管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

Jetpack Compose中的Modifier

Modifier的基本使用 Modifier修饰符是Jetpack Compose中用来修饰组件的&#xff0c;提供常用的属性&#xff0c;写布局时几乎所有Composable组件的大部分属性都可以用Modifier 来修饰。官方在开发Compose UI时&#xff0c;最初尝试过将所有属性全部以函数参数的形式提供&#…

[附源码]Node.js计算机毕业设计高校学生宿舍管理信息系统Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

10.Django大型电商项目之商品详情页——如何从数据库中获取图片地址显示图片在前端中

1.商品详情页 1.1 先搭建好基础框架 首先&#xff0c;我们应该修改跳转的点击路由在index.html中 <div class"goods-model"><div class"goods-content">{% for goods in goods_page %}<div class"good"><a href"/g…

计算机毕业设计django基于python爬虫系统

项目介绍 随着计算机多媒体技术的发展和网络的普及。采用当前流行的B/S模式以及3层架构的设计思想通过Python技术来开发此系统的目的是建立一个配合网络环境的爬虫系统的平台,这样可以有效地解决数据获取系统混乱的局面。 本文首先介绍了爬虫系统的发展背景与发展现状,然后遵…

谷歌浏览器是最容易受到攻击的

©网络研究院 不幸的是&#xff0c;那些看起来越多&#xff0c;他们发现的越多&#xff0c;这个规则总是适用的&#xff0c;除了来自体育场的无节制的欢呼声。 Windows 比 Linux 更容易受到攻击&#xff0c;因为 Chrome 比 Edge 更容易受到攻击。这也是因为它们是最受欢迎…

【大数据技术Hadoop+Spark】MapReduce之单词计数和倒排索引实战(附源码和数据集 超详细)

源码和数据集请点赞关注收藏后评论区留言私信~~~ 一、统计单词出现次数 单词计数是最简单也是最能体现MapReduce思想的程序之一&#xff0c;可以称为MapReduce版“Hello World。其主要功能是统计一系列文本文件中每个单词出现的次数 程序解析 首先MapReduce将文件拆分成spli…

你的代码会说话吗?(下)

篇首语 代码不讲真话的直接后果是所有人被误导了&#xff0c;然后做了一件错误的事情&#xff0c;不自知地将错就错&#xff0c;让错误越陷越深&#xff0c;最后浪费宝贵的时间。可不讲真话&#xff0c;编写代码的人又不是故意的&#xff0c;也万万不可上纲上线&#xff0c;袁…

力扣(LeetCode)1785. 构成特定和需要添加的最少元素(C++)

贪心 统计所有元素的加和 sumsumsum &#xff0c;计算 sumsumsum 到 goalgoalgoal 的距离&#xff0c;尽可能用 limitlimitlimit 的步长去走这段距离(贪心)&#xff0c;最后一步可能是 111 ~ limitlimitlimit 。 CCC 的除法是向 000 取整&#xff0c;为了统计最后一步&#xf…

深入理解网络编程精华

hi 大家好&#xff0c;我是大师兄&#xff0c;让我们一起来学习一下网络编程&#xff0c;对网络编程的核心知识进行梳理&#xff0c;希望大家早日掌握这些核心知识&#xff0c;打造自己坚实的基础。详细点击查看-> 极客星球。以上是深入理解网络编程部分ppt。感兴趣的同学可…

phoenix使用注意事项

使用phoenix的版本是5.0.0-HBase-2.0&#xff0c;DBeaver的版本是21.3(7.1.5版本也试过可以) 用DBeaver连接出现的问题处理 1.需要把已安装hbase服务器/opt/hbase/lib目录下的jar包全部下载来 1.1 常规配置 1.2 DBeaver编辑驱动把原来的库给删除掉&#xff0c;加入下载下来的…