iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >django--图书管理系统(项目)
  • 514
分享到

django--图书管理系统(项目)

图书管理系统项目django 2023-01-30 22:01:23 514人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

django创建一个新的项目设置静态文件,更改settings配置,在最后添加STATICFILES_DIRS = [     os.path.join(BASE_DIR,&nbs

django创建一个新的项目

blob.png


设置静态文件,更改settings配置,在最后添加

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]


在Bookmanager目录下创建static目录,目录结构如下:

blob.png


设计表:(表与表的关系,表结构)

修改models.py文件

from Django.db import models


# Create your models here.

class AuthorDetail(models.Model):
    gf = models.CharField(max_length=32)
    tel = models.CharField(max_length=32)


class Author(models.Model):
    name = models.CharField(max_length=32)
    age = models.IntegerField()
    # 与AuthorDetail建立一对一的关系
    # ad=models.ForeignKey(to="AuthorDetail",to_field="id",on_delete=models.CASCADE,unique=True)
    ad = models.OneToOneField(to="AuthorDetail", to_field="id", on_delete=models.CASCADE, )


class Publish(models.Model):
    name = models.CharField(max_length=32)
    email = models.CharField(max_length=32)
    addr = models.CharField(max_length=32)


class Book(models.Model):
    title = models.CharField(max_length=32, unique=True)
    price = models.DecimalField(max_digits=8, decimal_places=2, null=True)
    pub_date = models.DateField()
    # 与Publish建立一对多的关系,外键字段建立在多的一方
    publish = models.ForeignKey(to="Publish", to_field="id", on_delete=models.CASCADE)
    # 与Author表建立多对多的关系,ManyToManyField可以建在两个模型中的任意一个,自动创建关系表book_authors
    authors = models.ManyToManyField(to="Author")

class User(models.Model):
    name = models.CharField(max_length=32)
    pwd = models.CharField(max_length=32)
    last_time = models.DateTimeField()


连接数据库

没有使用pycharm,需执行

python manage.py makemigrations

python manage.py migrate


pycharm点击Tools里面的Run manage.py Task

blob.png


先执行

manage.py@Bookmanager > makemigrations

blob.png


再执行

manage.py@Bookmanager > migrate

blob.png


django默认使用的是sqllite数据库,可以看到5张表已经创建好了

app_author  作者表

app_authordetail 作者详情表

app_book  书籍表

app_book_authors 作者与书籍关系表

app_publish 出版社详情表

app_user 存放账号密码表

blob.png


往表里面添加数据

app_publish表, 出版社详情表

blob.png


app_authordetail,作者详情表

blob.png


app_author,作者表

blob.png


app_book,书籍表

blob.png


app_book_authors, 作者书籍关系表

blob.png


添加路由,修改urls.py文件

from djanGo.contrib import admin
from django.urls import path,re_path
from app import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', views.login, name='login'),
    path('books/', views.books, name='books'),
    path('add_book/', views.add_book, name='add_book'),
    re_path('edit_book/(\d+)', views.edit_book, name='edit_book'),
    re_path('del_book', views.del_book, name='del_book'),
    re_path('login/', views.login, name='login'),
    re_path('logout/', views.logout, name='logout'),

]


修改视图函数,views.py文件

from django.shortcuts import render,HttpResponse,redirect,reverse
from app import models
import JSON
import datetime
# Create your views here.

# 装饰器 判断session里面是否有is_login参数
def required_login(func):
    def inner(*args, **kwargs):
        request = args[0]
        # cookie写法
        # if request.COOKIES.get('is_login'):

        # session写法
        if request.session.get('is_login'):
            return func(*args, **kwargs)
        else:
            if request.is_ajax():
                return HttpResponse(json.dumps({'status':0}))
            return redirect(reverse('login'))

    return inner

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

@required_login
def add_book(request):
    if request.method == 'POST':
        print(request.POST)
        title = request.POST.get('name')
        price = request.POST.get('price')
        date = request.POST.get('date')
        publish = request.POST.get('publish')
        authors = request.POST.getlist('authors')
        print(title,price,date,publish,authors)

        new_book = models.Book.objects.create(title=title,price=price,pub_date=date,publish_id=publish)
        new_book.authors.add(*authors)
        return redirect(reverse('books'))
    publishers = models.Publish.objects.all()
    authors = models.Author.objects.all()
    return render(request, 'add_book.html', {'publishers':publishers, 'authors':authors})

@required_login
def edit_book(request, edit_id):
    book_obj = models.Book.objects.get(id=edit_id)
    if request.method == 'POST':
        title = request.POST.get('name')
        price = request.POST.get('price')
        date = request.POST.get('date')
        publish = request.POST.get('publish')
        authors = request.POST.get('authors')
        book_obj.title = title
        book_obj.price = price
        book_obj.pub_date = date
        book_obj.publish_id = publish
        book_obj.save()
        book_obj.authors.set(authors)
        return redirect(reverse("books"))
    publishers = models.Publish.objects.all()
    authors = models.Author.objects.all()
    return render(request, 'edit_book.html', {'book_obj':book_obj,'publishers':publishers,'authors':authors})

@required_login
def del_book(request):
    # print(request.POST)
    del_id = request.POST.get('del_id')
    del_list = models.Book.objects.filter(id=del_id)
    # print(del_list)
    del_list.delete()
    return HttpResponse(json.dumps({'status': 1}))


def login(request):
    if request.method == 'POST':
        print(request.POST)
        name = request.POST.get('name')
        pwd = request.POST.get('pwd')
        user_list = models.User.objects.filter(name=name, pwd=pwd)
        if user_list:
            user_obj = user_list.first()
            ret = redirect(reverse('books'))
            # cookie写法
            # ret.set_cookie('is_login', True)
            # ret.set_cookie('user', name)
            # ret.set_cookie('last_time', user_obj.last_time)

            # session写法,安全
            request.session['is_login'] = True
            request.session['user'] = name
            request.session['last_time'] = str(user_obj.last_time)
            user_obj.last_time = datetime.datetime.now()
            user_obj.save()
            return ret
    return render(request, "login.html")

@required_login
def logout(request):
    ret = redirect(reverse('login'))
    # cookie写法
    # ret.delete_cookie('is_login')
    # ret.delete_cookie('user')
    # ret.delete_cookie('last_time')

    # session写法
    request.session.flush()
    return ret


静态文件目录,static

blob.png


模版templates目录,存放html文件

blob.png


效果展示:

555.gif




完整代码放置github

GitHub地址:https://github.com/py3study/book_manage


--结束END--

本文标题: django--图书管理系统(项目)

本文链接: https://www.lsjlt.com/news/179169.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • django--图书管理系统(项目)
    django创建一个新的项目设置静态文件,更改settings配置,在最后添加STATICFILES_DIRS = [     os.path.join(BASE_DIR,&nbs...
    99+
    2023-01-30
    图书管理系统 项目 django
  • JavaWeb项目-图书管理系统
    目 录 设计任务与目的……………………………………………………………….4 2、设计思路………………………………………………………………………4 3、概要设计………………………………………………………...
    99+
    2023-10-23
    java 数据库 servlet
  • Django之图书管理系统
              出版社的增删改查  展示出版社列表:    1. 创建一个表结构:           2. 再配合那俩条命令即可创建一个press表          创建出版社函数,并在url中进行配置          创建HT...
    99+
    2023-01-30
    图书管理系统 Django
  • Java实战项目 图书管理系统
    目录一、项目简述二、项目运行修改图书类型信息代码:登录图书管理系统主页面代码:一、项目简述 功能包括: 登录注册,办理借阅。借阅记录,预约借阅,借出未还, 借阅逾期,学生管理,图书管...
    99+
    2024-04-02
  • JAVA实现图书管理系统项目
    目录前言项目需求设计前提设计目标设计结构图功能解读项目实现基本对象的设置通过IO流的写入写出总结前言 相信再每一个学生在学习编程的时候,应该都会写的一个小项目——图书管理系统。为什么...
    99+
    2024-04-02
  • [项目]PHP图书管理系统(附源码)
    📔这里是一个喜欢编程的小程序员,KSaMar 📕如果此文章对您有些许帮助,您可以选择赞助本作作者,让作者有更强的更新文章动力! 📒如...
    99+
    2024-01-21
    php 开发语言
  • PHP-Mysql图书管理系统--【白嫖项目】
    强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 首页必要的项目知识ThinkPHP的MVCThinkTemplateThinkPHP...
    99+
    2023-09-02
    php mysql php项目 实战项目
  • 【C#项目】图书馆管理系统-WinForm+MySQL
    文章目录 前言一、业务梳理与需求分析1.功能描述2.实现步骤3.功能逻辑图 二、数据库设计1.实体-关系(E-R图)概念模型设计2.数据表设计 三、WinForm界面交互设...
    99+
    2023-10-20
    python 开发语言
  • C++项目开发实现图书管理系统
    本文实例为大家分享了C++实现图书管理系统的具体代码,供大家参考,具体内容如下 一、需求分析 1.可以实现添加一条新的图书信息(图书名,图书编号,图书价格,图书作者)2.可以查看全部...
    99+
    2024-04-02
  • Django图书管理系统怎么实现
    本篇内容主要讲解“Django图书管理系统怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Django图书管理系统怎么实现”吧!项目使用python开发,采用Django框架,数据库采用M...
    99+
    2023-07-02
  • PHP-Mysql好运图书管理系统--【白嫖项目】
    强撸项目系列总目录在000集 PHP要怎么学–【思维导图知识范围】 文章目录 本系列校训本项目使用技术 首页必要的项目知识ThinkPHP的MVCThinkTemplateThinkPHP...
    99+
    2023-08-31
    php 毕业设计 课程设计
  • Django图书管理系统(单表操作)
    以下内容需要掌握: Python3 以及前端:HTML,CSS,jQuery,BootStrap,Django,JavaScript 开启Django新项目: 1,settings.py  数据库选择: ①sqlite3(Django自...
    99+
    2023-01-30
    图书管理系统 操作 Django
  • C++项目开发如何实现图书管理系统
    这篇“C++项目开发如何实现图书管理系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++项目开发如何实现图书管理系统”文...
    99+
    2023-06-29
  • MySQL数据库期末项目 图书馆管理系统
    1 项目需求分析 1.1 项目名称 图书馆管理系统 1.2 项目功能 在以前大多部分图书馆都是由人工直接管理,其中每天的业务和操作流程非常繁琐复杂,纸质版的登记信息耗费了大量的人力物力。因此图书馆管理系统应运而生,该系统采用智能化设...
    99+
    2023-10-21
    数据库 mysql java 经验分享 其他 Powered by 金山文档
  • javaWeb项目:简易图书系统
    javaWeb项目介绍: 1、没有使用maven2、使用注解加文件配置xml(只配置了错误页面)方式3、只是用一个index.jsp页面配合js来完成整个项目,4、使用原生js、axios方式请求数据5、项目不完善,只适合javaWeb初级...
    99+
    2023-12-22
    java 数据库 tomcat
  • 【JAVASE】图书管理系统
    ⭐ 作者:小胡_不糊涂 🌱 作者主页:小胡_不糊涂的个人主页 📀 收录专栏:浅谈Java 💖 持续更文,关注博主少走弯路,谢谢大家支持 Ǵ...
    99+
    2023-10-01
    java
  • C#开发图书馆管理系统的项目经验分享
    在信息技术不断发展的今天,图书馆也在逐渐数字化的进程中迎来了新的挑战和机遇。为了更好地管理图书馆资源和提供更便捷的服务,很多图书馆开始引入图书馆管理系统。本文将分享我在C#开发图书馆管理系统项目中的经验和心得。首先,一个好的图书馆管理系统需...
    99+
    2023-11-02
    C#开发 项目经验分享 图书馆管理
  • DJANGO 学生管理系统项目创建流程
    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 17.0px ".PingFang SC"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px ...
    99+
    2023-01-30
    管理系统 流程 项目
  • Java+MySQL 图书管理系统
    目录一,功能二,工具三、效果图:四、数据库设计五、JAVA层次分析六、主要Java代码分析一,功能 管理员登录 图书借阅信息管理 图书信息管理 管理员更改密码 退出系统 二,工具 E...
    99+
    2024-04-02
  • C++版图书管理系统
    本文实例为大家分享了C++版图书管理系统的具体代码,供大家参考,具体内容如下 使用介绍 图书管理系统源码由两部分组成,第一部分book.h头文件,第二部分book.cpp源文件。复制...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作