目前正在设计一个部门内用于管理图书,手机信息系统,目前已设计好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>
请教下如何通过一个路径看到完整的全部内容。