图书馆里系统首页搭建
首页搭建
模板的制作
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap-theme.min.css" integrity="sha384-6pzBo3FDv/PJ8r2KRkGHifhEocL+1X2rVCTTkUfGk7/0pbek5mMa1upzvWbrUbOZ" crossorigin="anonymous"> <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha384-aJ21OjlMXNL5UyIl/XNwTMqvzeRMZH2w8c5cRVpzpU8Y5bApTppSuUkhZXN0VxHd" crossorigin="anonymous"></script> {% block css %} {% endblock %} </head> <body> <nav class="navbar navbar-inverse"> <div class="container-fluid"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">图书管理系统</a> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav"> <li class="active"><a href="#">图书 <span class="sr-only">(current)</span></a></li> <li><a href="#">作者</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">更多 <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li role="separator" class="divider"></li> <li><a href="#">Separated link</a></li> <li role="separator" class="divider"></li> <li><a href="#">One more separated link</a></li> </ul> </li> </ul> <form class="navbar-form navbar-left"> <div class="form-group"> <input type="text" class="form-control" placeholder="Search"> </div> <button type="submit" class="btn btn-default">Submit</button> </form> <ul class="nav navbar-nav navbar-right"> <li><a href="#">Jeffrey</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">更多操作 <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li role="separator" class="divider"></li> <li><a href="#">Separated link</a></li> </ul> </li> </ul> </div><!-- /.navbar-collapse --> </div><!-- /.container-fluid --> </nav> <div class="container-fluid"> <div class="row"> <div class="col-md-3"> <div class="list-group"> <a href="#" class="list-group-item active"> 首页 </a> <a href="#" class="list-group-item">图书列表</a> <a href="#" class="list-group-item">出版社列表</a> <a href="#" class="list-group-item">作者列表</a> <a href="#" class="list-group-item">更多</a> </div> </div> <div class="col-md-9"> <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title">Book Management System</h3> </div> <div class="panel-body"> {% block content %} <div class="jumbotron"> <h1>欢迎来到亚洲最大的线上读书平台!</h1> <p>这里有的没有的书籍都有</p> <p><a class="btn btn-primary btn-lg" href="#" role="button">点击有你好看哟~</a></p> </div> <div class="row"> <div class="col-sm-6 col-md-4"> <div class="thumbnail"> <img src="https://img2.baidu.com/it/u=2376906852,1885075340&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1673802000&t=46bdc4157e6b597c55e403cce13d23a7" alt="..."> <div class="caption"> <h3>Thumbnail label</h3> <p>...</p> <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a> </p> </div> </div> </div> <div class="col-sm-6 col-md-4"> <div class="thumbnail"> <img src="https://img2.baidu.com/it/u=2629934346,4135707188&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1673802000&t=7ce50522719aaefdf7a67253b9d1230c" alt="..."> <div class="caption"> <h3>Thumbnail label</h3> <p>...</p> <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a> </p> </div> </div> </div> <div class="col-sm-6 col-md-4"> <div class="thumbnail"> <img src="https://img2.baidu.com/it/u=1576264245,1493262872&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1673802000&t=cb57eee15912a7e25a68626e5f6c8519" alt="..."> <div class="caption"> <h3>Thumbnail label</h3> <p>...</p> <p><a href="#" class="btn btn-primary" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a> </p> </div> </div> </div> </div> {% endblock %} </div> </div> </div> </div> </div> {% block js %} {% endblock %} </body> </html>
choices参数(数据库字段设计常见)
用户表
性别
学历
工作经验
是否结婚
是否生子
客户来源
...
针对某个可以列举完全的可能性字段,我们应该如何存储
只要某个字段的可能性是可以列举完全的,那么一般情况下都会采用choices参数
models.py
class User(models.Model): username = models.CharField(max_length=32) age = models.IntegerField() # 性别 gender_choices = ( (1,'男'), (2,'女'), (3,'其他'), ) gender = models.IntegerField(choices=gender_choices) """ 该gender字段存的还是数字 如果存的数字在上面元组列举的范围之内 那么可以非常轻松的获取到数字对应的真正内容 1. gender字段存的数字不在上述元组列举的范围之内 2. 如果在 如何获取对应的中文信息 """ score_choices = ( ('A','优秀'), ('B','良好'), ('C','及格'), ('D','不及格'), ) # 保证字段类型跟列举出来的元组第一个数据类型一致即可 score = models.CharField(choices=score_choices,null=True)
test.py
from django.test import TestCase # Create your tests here. #!/usr/bin/env python """Django's command-line utility for administrative tasks.""" import os import sys if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoproject.settings') import django django.setup() from app01 import models # models.User.objects.create(username='jason',age=18,gender=1) # models.User.objects.create(username='egon',age=85,gender=2) # models.User.objects.create(username='tank',age=40,gender=3) # 存的时候 没有列举出来的数字也能存 (范围还是按照字段类型决定) # models.User.objects.create(username='tony',age=45,gender=4) user_objs = models.User.objects.all() for user_obj in user_objs: print(user_obj.get_gender_display()) user_obj = models.User.objects.filter(pk=1).first() # 只要是choices参数的字段 如果你想获取对应信息 固定写法 get_字段名_display() print(user_obj.gender) print(user_obj.get_gender_display()) user_obj = models.User.objects.filter(pk=4).first() # 如果没有对应关系 那么字段是什么还是展示什么 print(user_obj.get_gender_display())