栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Django图书管理系统项目实战

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Django图书管理系统项目实战

目录

(一)创建完善图书管理系统项目

1、新建项目

2、注册应用

(1)在settings文件中导入os模块

(2)创建应用-app01,并在settings中注册 应用

3、启动项目,http://127.0.0.1:8000,项目搭建成功 

 (二)数据库创建

1、新建数据库forum_system

2、settings中配置MySQL数据库 

3、设置数据库连接模块

4、执行数据迁移

 (三)模型配置

1、在app01demodels文件中定义图书模型

 2、执行数据迁移数据库新增表

(四)创建模板页面

1、在templates中创建index.html文件

2、base.html

3、publisher_list.html

4、add_publisher.html

5、edit_publisher.html

(五)设置路由分发规则

1、在urls中设置主路由

 2、创建视图函数

3、启动项目,测试运行效果,http://127.0.0.1:8000 


(一)创建完善图书管理系统项目

1、新建项目

2、注册应用

(1)在settings文件中导入os模块

(2)创建应用-app01,并在settings中注册 应用

  • 创建后的目录(static放置静态媒体文件,templates放置静态网页文件)

3、启动项目,http://127.0.0.1:8000,项目搭建成功 

 (二)数据库创建

1、新建数据库forum_system

2、settings中配置MySQL数据库 

3、设置数据库连接模块

 

4、执行数据迁移

  • 迁移成功,查看数据库新生成的表

 (三)模型配置

1、在app01demodels文件中定义图书模型

 2、执行数据迁移数据库新增表

python manage.py makemigrations

python manage.py migrate 

  • 查看生成的数据表

  • 给数据表添加几条数据

(四)创建模板页面

1、在templates中创建index.html文件
{% extends 'base.html' %}

{% block title %}
    管理系统
{% endblock title %}
{% block main %}
    
        
            欢迎使用图书信息管理系统
            点击左侧按钮选择您想要的操作(#^.^#)
        
    
{% endblock main %}

2、base.html
{% load static %}



    

    
    
    
    
    

    {% block title %}{% endblock title %}
    
    
    






    
        
            
  • 出版社列表页
  • {#
  • 书籍列表
  • #} {#
  • 作者列表
  • #}
{% block main %} {% endblock %}

用户信息

3、publisher_list.html
{% load static %}



    

    
    
    
    
    

    {% block title %}{% endblock title %}
    
    
    






    
        
            
  • 出版社列表页
  • {#
  • 书籍列表
  • #} {#
  • 作者列表
  • #}
{% block main %} {% endblock %}

用户信息

4、add_publisher.html
{% extends 'base.html' %}

{% block title %}
    管理系统|添加出版社
{% endblock title %}

{% block main %}
    

出版社管理页面 添加出版社

{{ error_msg }}

{% csrf_token %}
{% endblock main %} {% block publisher_list %} active {% endblock publisher_list %}

5、edit_publisher.html
{% extends 'base.html' %}

{% block title %}
    管理系统|编辑出版社
{% endblock title %}

{% block main %}
    

出版社管理页面 编辑出版社

{{ error_msg }}

{% csrf_token %}
{% endblock main %} {% block publisher_list %} active {% endblock publisher_list %}

(五)设置路由分发规则

1、在urls中设置主路由

 2、创建视图函数
from django.views import View
from django.shortcuts import render, redirect, HttpResponse

from app01 import models

#
# =========Class Based View==================


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


def delete_book(request, del_id):
    models.Book.objects.get(id=del_id).delete()
    return redirect('/book_list/')


class AddPublisher(View):
    def get(self, request):
        return render(request, 'add_publisher.html')
#
    def post(self, request):
        new_name = request.POST.get('publisher_name', None)
        if new_name:
            models.Publisher.objects.create(name=new_name)
            return redirect('/publisher_list/')
        error_msg = '出版社名字不能为空'
        return render(request, 'add_publisher.html', {'error_msg': error_msg})
#
#
# # =========Function Based View==================
def publisher_list(request):
    ret = models.Publisher.objects.all()
    return render(request, 'publisher_list.html', {'publisher_list': ret})
#
#
def add_publisher(request):
    error_msg = ''
    if request.method == 'POST':
        new_name = request.POST.get('publisher_name', None)
        new_book_name = request.POST.get('publisher_book_name', None)
        if new_name:
            models.Publisher.objects.create(name=new_name,book_name=new_book_name)
            return redirect('/publisher_list/')
        error_msg = '出版社名字不能为空'
    return render(request, 'add_publisher.html', {'error': error_msg})
#
#
def delete_publisher(request, del_id):
    if del_id:
        models.Publisher.objects.get(id=del_id).delete()
        return redirect('/publisher_list/')
    else:
        return HttpResponse('要删除的数据不存在')
#
#
def edit_publisher(request, edit_id):
    error_msg = ''
    if request.method == 'POST':
        new_name = request.POST.get('publisher_name')
        new_book_name = request.POST.get('publisher_book_name')
        if new_name:
            edit_pub = models.Publisher.objects.filter(id=edit_id)
            # edit_pub.name = new_name
            # edit_pub.book_name = new_book_name
            # edit_pub.save()

            edit_pub.update(name=new_name,book_name=new_book_name)

            return redirect('/publisher_list/')
        else:
            error_msg = '出版社名不能为空'
    publisher_obj = models.Publisher.objects.get(id=edit_id)
    return render(request, 'edit_publisher.html', {'publisher': publisher_obj, 'error_msg': error_msg})
#
#

3、启动项目,测试运行效果,http://127.0.0.1:8000 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/991177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号