<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12
        博客園  :: 首頁  :: 新隨筆  :: 聯系 :: 訂閱 訂閱  :: 管理

      django之圖書管理系統

      Posted on 2023-06-24 14:27  亂了啦  閱讀(211)  評論(0)    收藏  舉報

      后端

      路由

       

      urlpatterns = [
          path('admin/', admin.site.urls),
          首頁
          re_path('^$', views.Bms.as_view()),
        圖書 path('book/', views.Books.as_view()),
        出版社 path('publish/', views.Publish.as_view()),
        作者 path('author/', views.Authors.as_view()),
        修改 re_path('^book_update/(\d+)$', views.Update.as_view(), name="obj1"),
        刪除 re_path('^book_delete/(\d+)$', views.Delete.as_view(), name="obj2"),
        添加 path('add/', views.BookAdd.as_view()), ]

       

        

       

      模型層

       

      # 圖書表
      class Book(models.Model):
          title = models.CharField(max_length=32)
          price = models.DecimalField(max_digits=8, decimal_places=2)  # 總共8位,小數點占8位
          date = models.DateField(auto_now_add=True)
          """
          圖書和出版社是一對多 并且書是多的一方 所以外鍵字段放在書表里面
          """
          publish = models.ForeignKey(to='Publish', on_delete=models.CASCADE, )  # 默認會跟出版社表的主鍵關聯
          """
          如果字段對應的是ForeignKey 那么會orm會自動在字段的后面加_id
          """
          authors = models.ManyToManyField(to='Author')
          """
          authors是一個虛擬字段 主要是用來告訴orm 書籍表和作者表是多對多關系
          讓orm自動幫你創建第三張關系表
          """
      
      
      # 出版社表
      class Publish(models.Model):
          name = models.CharField(max_length=32)
          addr = models.CharField(max_length=32, null=True)
          email = models.EmailField()
      
      
      # 作者表
      class Author(models.Model):
          name = models.CharField(max_length=32)
          age = models.IntegerField(null=True)
          author_detail = models.OneToOneField(to='AuthorDetail', on_delete=models.CASCADE, )
      
      
      # 作責詳情表
      class AuthorDetail(models.Model):
          phone = models.BigIntegerField()  # 或者直接字符類型
          addr = models.CharField(max_length=32)
      

       

        

       

      視圖層

       

      from django.shortcuts import render, HttpResponse, redirect
      
      # Create your views here.
      from django.views import View
      
      from app01 import models
      
      
      class Bms(View):
          def get(self,request):
              return render(request, "bms.html")
      
      
      class Books(View):
          def get(self,request):
              # 先查詢出所有的書籍信息 傳遞給html頁面
              book_all = models.Book.objects.all()
              return render(request, "books.html",locals())
      
      
      class Publish(View):
          def get(self,request):
              return render(request, "publishs.html")
      
      
      class Authors(View):
          def get(self,request):
              return render(request, "authors.html")
      
      
      class BookAdd(View):
          def get(self,request):
              publish_all = models.Publish.objects.all()
              author_all = models.Author.objects.all()
              return render(request, "add.html",locals())
      
          def post(self,request):
              # 獲取前端提交過來的所有數據
              title = request.POST.get("title")
              price = request.POST.get("price")
              publish_date = request.POST.get("date")
              publish_id = request.POST.get("publish")
              authors_list = request.POST.getlist("author")
              # 操作數據庫存儲數據
              # 書籍表
              book_obj = models.Book.objects.create(title=title, price=price, date=publish_date,
                                                    publish_id=publish_id)
              # 書籍表與作者表的關系
              book_obj.authors.add(*authors_list)
              return redirect('/book/')
      
      
      class Update(View):
          def get(self,request,up):
              edit_obj = models.Book.objects.filter(pk=up).first()
              publish_list = models.Publish.objects.all()
              author_list = models.Author.objects.all()
              return render(request, "book_up.html",locals())
      
          def post(self,request,up):
              # 獲取當前用戶想要編輯的書籍對象 展示給用戶看
              edit_obj = models.Book.objects.filter(pk=up).first()
              title = request.POST.get("title")
              price = request.POST.get("price")
              publish_date = request.POST.get("date")
              publish_id = request.POST.get("publish")
              authors_list = request.POST.getlist("author")  # [1,2,3,4,]
              models.Book.objects.filter(pk=up).update(title=title,
                                                            price=price,
                                                            date=publish_date,
                                                            publish_id=publish_id
                                                            )
              # 該第三張關系表
              edit_obj.authors.set(authors_list)
              return redirect('/book/')
      
      
      class Delete(View):
          def get(self, request, up):
              models.Book.objects.filter(pk=up).delete()
              return redirect("/book/")
      

       

        

       

      前端

      圖書(books)

      {% extends "bms.html" %}
      {% block content %}
      <div class="panel panel-info">
                <!-- Default panel contents -->
                <div class="panel-heading">圖書<a href="/add/" class="btn btn-success btn-sm navbar-right" role="button">添加</a>
      </div>
                <div class="panel-body">
                                   <!-- Table -->
                <table class="table table-hover">
                  <thead>
                  <tr>
                      <td>書名</td>
                      <td>價格</td>
                      <td>出版社</td>
                      <td>出版日期</td>
                      <td>作者</td>
                      <td>操作</td>
                  </tr>
                  </thead>
                    <tbody>
                    {% for book in book_all %}
                    <tr>
                      <td>{{ book.title }}</td>
                      <td>{{ book.price }}</td>
                      <td>{{ book.publish.name }}</td>
                      <td>{{ book.date|date:"Y-m-d" }}</td>
                      <td>
                          {% for author in book.authors.all %}
                              {% if forloop.last %}
                                  {{ author.name }}
                              {% else %}
                                  {{ author.name }} |
                              {% endif %}
                          {% endfor %}
      
                      </td>
                      <td>
                          <a href="{% url "obj1" book.id %}" class="btn btn-primary">編輯</a>
                          <a href="{% url "obj2" book.id %}" class="btn btn-success">刪除</a>
                      </td>
                    </tr>
                    {% endfor %}
                    </tbody>
                </table>
                </div>
              </div>
      {% endblock %}
      

        

      首頁(bms)

      {% load static %}
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <link rel="stylesheet" href="{% static "bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/css/bootstrap.min.css" %}">
          <script href="{% static "bootstrap-3.4.1-dist/bootstrap-3.4.1-dist/js/bootstrap.min.js" %}"></script>
      </head>
      <body>
      <nav class="navbar navbar-default">
        <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">
      
            <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="/lon1/" class="active">登錄</a></li>
              <li><a href="/regin/" class="active">注冊</a></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="/book/" class="list-group-item">圖書列表</a>
                        <a href="/author/" class="list-group-item">作者列表</a>
                        <a href="/publish/" class="list-group-item">出版社列表</a>
                  </div>
              </div>
              <div class="col-md-9">
                  {% block content %}
                      <div class="panel panel-primary">
                        <div class="panel-heading">
                          <h3 class="panel-title">首頁</h3>
                        </div>
                        <div class="panel-body">
                          <div class="row">
                    <div class="col-sm-6 col-md-4">
                      <div class="thumbnail">
                        <img src="../static/imge/1.jpg" alt="...">
                        <div class="caption">
                          <h3>圖書</h3>
                          <p><a href="/book/" class="btn btn-primary" role="button">Button</a></p>
                        </div>
                      </div>
      
                    </div>
                    <div class="col-sm-6 col-md-4">
                      <div class="thumbnail">
                        <img src="../static/imge/2.jpg" alt="...">
                        <div class="caption">
                          <h3>作者</h3>
                          <p><a href="/author/" class="btn btn-primary" role="button">Button</a></p>
                        </div>
                      </div>
      
                  </div>
                    <div class="col-sm-6 col-md-4">
                      <div class="thumbnail">
                        <img src="../static/imge/3.jpg" alt="...">
                        <div class="caption">
                          <h3>出版社</h3>
                          <p><a href="/publish/" class="btn btn-primary" role="button">Button</a></p>
                        </div>
                      </div>
      
                  </div>
                    <div class="col-sm-6 col-md-4">
                      <div class="thumbnail">
                        <img src="../static/imge/4.jpg" alt="...">
                        <div class="caption">
                          <h3>廢物一個</h3>
                          <p><a href="/bao/" class="btn btn-primary" role="button">查看特性</a></p>
                        </div>
                      </div>
                  </div>
                  </div>
                        </div>
                      </div>
                  {% endblock %}
      {#        模板的導入#}
      {#        {% include "file.html" %}#}
              </div>
          </div>
      </div>
      </body>
      </html>
      

        

      編輯

      {% extends "bms.html" %}
      {% block content %}
          <div class="container">
          <div class="row">
              <div class="col-lg-8 col-md-offset-2">
                  <h2 class="text-center">修改書籍</h2>
          <form method="post">
              {% csrf_token %}
              <p>書名:<input class="form-control" type="text" name="title" value="{{ edit_obj.title }}"><p/>
              <p>價格:<input class="form-control" type="text" name="price" value="{{ edit_obj.price }}"><p/>
              <p>日期:<input class="form-control" type="date" name="date" value="{{ edit_obj.date|date:"Y-m-d" }}"><p/>
              <p>出版社:
                  <select name="publish" id="" class="form-control">
                      {% for obj in publish_list %}
                          {% if edit_obj.publish == obj%}
                              <option value="{{ obj.pk }}" selected>{{ obj.name }}</option>
                              {% else %}
                               <option value="{{ obj.pk }}">{{ obj.name }}</option>
                          {% endif %}
                      {% endfor %}
                  </select>
              <p/>
              <p>作者:
                  <select name="author" id="" multiple class="form-control">
                      {% for obj1 in author_list %}
                          {% if obj1 in edit_obj.authors.all %}
                              <option value="{{ obj1.pk }}" selected>{{ obj1.name }}</option>
                          {% else %}
                              <option value="{{ obj1.pk }}">{{ obj1.name }}</option>
                          {% endif %}
                      {% endfor %}
                  </select>
              <p/>
              <p><input class="form-control btn-success" type="submit" name="submit"><p/>
          </form>
              </div>
          </div>
      </div>
      {% endblock %}
      

        

      添加

      {% extends "bms.html" %}
      {% block content %}
          <div class="container">
          <div class="row">
              <div class="col-lg-8 col-md-offset-2">
                  <h2 class="text-center">修改書籍</h2>
          <form method="post">
              {% csrf_token %}
              <p>書名:<input class="form-control" type="text" name="title" value="{{ up_id.title }}"><p/>
              <p>價格:<input class="form-control" type="text" name="price" value="{{ up_id.price }}"><p/>
              <p>日期:<input class="form-control" type="date" name="date" value="{{ up_id.price }}"><p/>
              <p>出版社:
                  <select name="publish" id="" class="form-control">
                      {% for obj in publish_all %}
                          <option value="{{ obj.pk }}">{{ obj.name }}</option>
                      {% endfor %}
                  </select>
              <p/>
              <p>作者:
                  <select name="author" id="" multiple class="form-control">
                      {% for obj1 in author_all %}
                          <option value="{{ obj1.pk }}">{{ obj1.name }}</option>
                      {% endfor %}
                  </select>
              <p/>
              <p><input class="form-control btn-success" type="submit" name="submit"><p/>
          </form>
              </div>
          </div>
      </div>
      {% endblock %}
      

        settings

      DATABASES = {
          'default': {
              'ENGINE': 'django.db.backends.mysql',
              'NAME': 'bms',
              'USER': 'root',
              'PASSWORD': '',
              'HOST': '127.0.0.1',
              'PORT': 3306,
          }
      }
      
      STATIC_URL = '/static/'
      STATICFILES_DIRS = [
          os.path.join(BASE_DIR, 'app01/static')
      ]

       

      主站蜘蛛池模板: 国产精品一区二区传媒蜜臀| 亚洲真人无码永久在线| 尹人香蕉久久99天天拍| 国产成人无码免费视频麻豆| 欧美人与动人物牲交免费观看| 久久亚洲熟女cc98cm| 精品国产综合成人亚洲区| 国产一国产看免费高清片| 亚洲AV无码AV在线影院| 崇礼县| 九九视频热最新在线视频| 久久人与动人物a级毛片| 成人无码www在线看免费| 国产精品∧v在线观看| 亚洲av综合色区在线观看| 久久精品国产6699国产精| 色猫咪av在线网址| 成全影视大全在线观看| 国产精品国三级国产av| 风流老熟女一区二区三区| 黑人巨大av无码专区| 精品中文字幕人妻一二| av天堂亚洲天堂亚洲天堂| 在线高清免费不卡全码| 麻豆妓女爽爽一区二区三| 午夜精品极品粉嫩国产尤物| 国产成人精品视频不卡| 中文无码av一区二区三区| 人人妻人人澡人人爽曰本| 国产一级区二级区三级区| 漂亮的保姆hd完整版免费韩国 | 冷水江市| 91孕妇精品一区二区三区| 久久一亚色院精品全部免费| 男人av无码天堂| 亚洲精品欧美综合二区| 少妇人妻偷人精品无码视频| 国产嫩草精品网亚洲av| 公喝错春药让我高潮| 毛片网站在线观看| 亚洲一区国色天香|