pkchenwang 2024-05-09 10:08 采纳率: 0%
浏览 1

django设计图书手机管理系统页面不能全局打开看到全部内容

目前正在设计一个部门内用于管理图书,手机信息系统,目前已设计好html,views,models,urls,碰到的问题就是默认进入127.0.0.1:8000/lib/list,只能看到图书内容,看不到手机内容,想要看手机内容只能单独进127.0.0.1:8000/phone/list页面,但是又无法看图书内容。
总体感觉两块页面没有整合在一起,还是分开状态。

urls代码

from django.urls import path
from app01 import views

urlpatterns = [
    path(r'', views.home),
    path(r'login/', views.login),
    path(r'lib/list/', views.lib_list),
    path(r'lib/list/<int:nid>/borrow/', views.lib_borrow),
    path(r'lib/return/', views.lib_return),
    path(r'phone/list/', views.phone_list),
]

views代码

def lib_list(request):
    data_dict = {}
    value = request.GET.get("q")
    if value:
        data_dict["bookname__icontains"] = value

    page = int(request.GET.get('page', 1))
    page_size = 10
    start = (page - 1) * page_size
    end = page * page_size
    queryset = models.LibInfo.objects.filter(**data_dict)[start:end]
    for obj in queryset:
        print(obj.id, obj.bookname, obj.borrower)

    total_count = models.LibInfo.objects.filter(**data_dict).count()
    total_page_count, div = divmod(total_count, page_size)
    if div:
        total_page_count += 1

    if total_page_count <= 2 * 10 + 1:
        start_page = 1
        end_page = total_page_count
    else:
        start_page = page - 5
        end_page = page + 5

    page_str_list = []
    for i in range(start_page, end_page + 1):
        if i == page:
            ele = '<li class="page-item active"><a class="page-link" href="?page={}">{}</a></li>'.format(i, i)
        else:
            ele = '<li class="page-item"><a class="page-link" href="?page={}">{}</a></li>'.format(i, i)
        page_str_list.append(ele)
    page_string = mark_safe("".join(page_str_list))

    return render(request, 'lib_list.html', {"queryset": queryset, "page_string": page_string})

def phone_list(request):
    data_dict = {}
    value = request.GET.get("q")
    if value:
        data_dict["Brand__icontains"] = value

    page = int(request.GET.get('page', 1))
    page_size = 10
    start = (page - 1) * page_size
    end = page * page_size
    queryset = models.PhoneInfo.objects.filter(**data_dict)[start:end]
    print(queryset)

    for phone in queryset:
        print(phone.id,phone.Brand)

    for phone in queryset:
    print(phone.id, phone.Brand, phone.Model)

    total_count = models.PhoneInfo.objects.filter(**data_dict).count()
    total_page_count, div = divmod(total_count, page_size)
    if div:
        total_page_count += 1

    if total_page_count <= 2 * 10 + 1:
        start_page = 1
        end_page = total_page_count
    else:
        start_page = page - 5
        end_page = page + 5

    page_str_list = []
    for i in range(start_page, end_page + 1):
        if i == page:
            ele = '<li class="page-item active"><a class="page-link" href="?page={}">{}</a></li>'.format(i, i)
        else:
            ele = '<li class="page-item"><a class="page-link" href="?page={}">{}</a></li>'.format(i, i)
        page_str_list.append(ele)
    page_string = mark_safe("".join(page_str_list))

    return render(request, 'phone_list.html', {"queryset": queryset, "page_string": page_string})

models代码(关联mySQL数据库)

class LibInfo(models.Model):
    bookname = models.CharField(verbose_name="书名", max_length=128)
    author = models.CharField(verbose_name="作者", max_length=128)
    status = models.CharField(verbose_name='状态', max_length=128)
    operation = models.CharField(verbose_name='操作', max_length=16, blank=True, null=True)
    borrower = models.CharField(verbose_name='借用人', max_length=64, blank=True, null=True)
    date = models.DateField(verbose_name='借用时间', blank=True, null=True)


class PhoneInfo(models.Model):
    Tnum = models.CharField(verbose_name='Tnum', max_length=6)
    DeviceName = models.CharField(verbose_name="DeviceName", max_length=50)
    DeviceType = models.CharField(verbose_name="DeviceType", max_length=50)
    DeviceCategory = models.CharField(verbose_name="DeviceCategory", max_length=50)
    Brand = models.CharField(verbose_name="Brand", max_length=50)
    Model = models.CharField(verbose_name="Model", max_length=50)
   

图书管理html. lib_list.html

{%load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="{% static 'plugins/bootstrap/css/bootstrap.min.css' %}">

    <style>
        .navbar{
            border-radius: 0;
        }

        .container-fluid
        {
            margin-top: 10px;

        }

    </style>
</head>
<body>
<nav class="navbar navbar-expand-lg " style="background-color: #e3f2fd;">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">资产管理系统</a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav me-auto mb-2 mb-lg-0">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="">首页</a>
        </li>
      </ul>
    <ul class="navbar-nav  navbar-right">
        <li class="nav-item">
          <a class="nav-link" href="#">登陆</a>
        </li>
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            设置
          </a>
          <ul class="dropdown-menu">
            <li><a class="dropdown-item" href="#">个人资料</a></li>
            <li><a class="dropdown-item" href="#">我的信息</a></li>
            <li><hr class="dropdown-divider"></li>
            <li><a class="dropdown-item" href="#">注销</a></li>
          </ul>
        </li>
      </ul>
    </div>
  </div>
</nav>

<nav>
  <div class="nav nav-tabs" id="nav-tab" role="tablist">
    <a class="nav-link active" id="nav-home-tab" data-bs-toggle="tab" href="#nav-home" role="tab" aria-controls="nav-home" aria-selected="true">图书管理系统</a>
    <a class="nav-link" id="nav-profile-tab" data-bs-toggle="tab" href="http://127.0.0.1:8000/phone/list/" role="tab" aria-controls="nav-profile" aria-selected="false">手机管理系统</a>
  </div>
</nav>
<div class="tab-content" id="nav-tabContent">
  <div class="tab-pane fade show active" id="nav-home" role="tabpanel" aria-labelledby="nav-home-tab">
    <div class="container-fluid">
        <div style="margin-bottom: 18px" class="clearfix">
            <div style="float: left;width: 400px;margin-bottom: 10px">
                <form method="get">
                    <div class="input-group">
                        <label>
                            <input type="text" name="q" class="form-control" placeholder="Enter book to search...">
                        </label>
                        <span class="input-group-btn">
                            <button class="btn btn-primary" type="submit">搜索</button>
                        </span>
                    </div>
                </form>

            </div>
        <table class="table table-bordered  table-hover table-condensed table-sm align-middle ">
                <thead class="table-light">
                    <tr>
                      <th>ID</th>
                      <th>书名</th>
                      <th>作者</th>
                      <th>状态</th>
                      <th>操作</th>
                      <th>借用人</th>
                      <th>申请时间</th>
                    </tr>
                </thead>
                <tbody>
                {% for obj in queryset %}
                    <tr class="align-bottom">
                      <td>{{ obj.id }}</td>
                      <td>{{ obj.bookname }}</td>
                      <td>{{ obj.author }}</td>
                      <td>{{ obj.status }}</td>
                      <td class="align-top">
                          <a class="btn btn-primary btn-sm" href="{{ obj.id }}/borrow">借阅</a>
                          <input uid='{{ obj.id }}' class='btn btn-danger btn-sm btn-return' type="button" value="归还">

                      </td >
                      <td>{{ obj.borrower }}</td>
                      <td>{{ obj.date|date:"Y-m-d" }}</td>
                    </tr>
                {% endfor %}
                </tbody>
        </table>

        </div>
    </div>
    <ul class="pagination">
        {{ page_string }}
    </ul>
  </div>

</div>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">信息确认</h5>
        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
      </div>
      <div class="modal-body">
        是否确认归还该书籍
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">取消</button>
{#        <button id="btnReturnConform" type="button" class="btn btn-primary">确认</button>#}
          <button id="btnReturnConform" type="button" class="btn btn-primary">确认</button>
      </div>
    </div>
  </div>
</div>

<script type="text/javascript" src="{% static 'js/jquery-3.7.1.min.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/bootstrap/js/bootstrap.bundle.js' %}"></script>
</body>

<script type="text/javascript">
    var RETURN_ID;
    $(function (){
        bindBtnReturnEvent();
        bindBtnReturnConfirmEvent();
    })

    function bindBtnReturnEvent(){
        $(".btn-return").click(function (){
            {#alert("确认了归还")#}
            $("#exampleModal").modal('show')
            RETURN_ID=$(this).attr("uid");
            console.log(RETURN_ID);

        })
    }
    function bindBtnReturnConfirmEvent(){
        $('#btnReturnConform').click(function (){
            $.ajax({
                url:"/lib/return/",
                type:"GET",
                data:{
                    uid:RETURN_ID
                },
                dataType:"JSON",
                success:function (res){
                    if (res.status){
                        $("#exampleModal").modal('hide');
                        RETURN_ID=0
                        location.reload();
                    }else{
                        alert(res.error)
                    }

                }
            })

        })

    }
</script>
</html>

手机管理html代码phone_list.html

{%load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="{% static 'plugins/bootstrap/css/bootstrap.min.css' %}">

    <style>
        .navbar{
            border-radius: 0;
        }

        .container-fluid
        {
            margin-top: 10px;

        }

    </style>
</head>
<body>
<nav class="navbar navbar-expand-lg " style="background-color: #e3f2fd;">
  <div class="container-fluid">
    <a class="navbar-brand" href="#">资产管理系统</a>
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
      <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
      <ul class="navbar-nav me-auto mb-2 mb-lg-0">
        <li class="nav-item">
          <a class="nav-link active" aria-current="page" href="">首页</a>
        </li>
      </ul>
    <ul class="navbar-nav  navbar-right">
        <li class="nav-item">
          <a class="nav-link" href="#">登陆</a>
        </li>
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
            设置
          </a>
          <ul class="dropdown-menu">
            <li><a class="dropdown-item" href="#">个人资料</a></li>
            <li><a class="dropdown-item" href="#">我的信息</a></li>
            <li><hr class="dropdown-divider"></li>
            <li><a class="dropdown-item" href="#">注销</a></li>
          </ul>
        </li>
      </ul>
    </div>
  </div>
</nav>

<nav>
  <div class="nav nav-tabs" id="nav-tab" role="tablist">
    <a class="nav-link" id="nav-home-tab" data-bs-toggle="tab" href="http://127.0.0.1:8000/lib/list/" role="tab" aria-controls="nav-home" aria-selected="false">图书管理系统</a>
    <a class="nav-link active" id="nav-profile-tab" data-bs-toggle="tab" href="#nav-profile" role="tab" aria-controls="nav-profile" aria-selected="true">手机管理系统</a>
  </div>
</nav>
<div class="tab-content" id="nav-tabContent">
  <div class="tab-pane fade" id="nav-profile" role="tabpanel" aria-labelledby="nav-profile-tab">
    <div class="container-fluid">
        <div style="margin-bottom: 18px" class="clearfix">
            <div style="float: left;width: 400px;margin-bottom: 10px">
                <form method="get">
                    <div class="input-group">
                        <label>
                            <input type="text" name="q" class="form-control" placeholder="Enter Brand to search...">
                        </label>
                        <span class="input-group-btn">
                            <button class="btn btn-primary" type="submit">搜索</button>
                        </span>
                    </div>
                </form>

            </div>
        <table class="table table-bordered  table-hover table-condensed table-sm align-middle ">
                <thead class="table-light">
                    <tr>
                      <th>id</th>
                      <th>Tnum</th>
                      <th>DeviceName</th>
                      <th>DeviceType</th>
                      <th>DeviceCategory</th>
                      <th>Brand</th>
                      <th>Model</th>
                    </tr>
                </thead>
                <tbody>
                {% for phone in queryset %}
                    <tr class="align-bottom">
                      <td>{{ phone.id }}</td>
                      <td>{{ phone.Tnum }}</td>
                      <td>{{ phone.DeviceName }}</td>
                      <td>{{ phone.DeviceType }}</td>
                      <td>{{ phone.DeviceCategory }}</td>
                      <td>{{ phone.Brand }}</td>
                      <td>{{ phone.Model }}</td>
                    </tr>
                {% endfor %}
                </tbody>
        </table>

        </div>
    </div>
    <ul class="pagination">
        {{ page_string }}
    </ul>
  </div>
</div>

<script type="text/javascript" src="{% static 'js/jquery-3.7.1.min.js' %}"></script>
<script type="text/javascript" src="{% static 'plugins/bootstrap/js/bootstrap.bundle.js' %}"></script>
</body>
</html>

请教下如何通过一个路径看到完整的全部内容。

  • 写回答

4条回答 默认 最新

  • 专家-皆知 2024-05-09 10:08
    关注

    引自免费微信小程序:皆我百晓生

    在你的视图函数中添加逻辑,根据用户权限或登录状态来决定是否展示所有内容,或者对相应URL设置分页显示。

    评论

报告相同问题?

问题事件

  • 创建了问题 5月9日

悬赏问题

  • ¥15 关于温度改变石墨烯介电性能(关键词-介电常数)
  • ¥150 HDMI分路器LT86102 的输出在890MHz频点处EMC超标8DB
  • ¥15 druid(相关搜索:数据库|防火墙)
  • ¥15 大一python作业
  • ¥15 preLaunchTask"C/C++: aarch64- apple-darwin22-g++-14 生成活动 文件”已终止,退出代码为-1。
  • ¥60 如何鉴定微信小程序数据被篡改过
  • ¥18 关于#贝叶斯概率#的问题:这篇文章中利用em算法求出了对数似然值作为概率表参数,然后进行概率表计算,这个概率表是怎样计算的呀
  • ¥20 C#上传XML格式数据
  • ¥15 elementui上传结合oss接口断点续传,现在只差停止上传和继续上传,各大精英看下
  • ¥20 手机截图相片分辨率降低一半