python学习第4天---django框架---MVT综合小练习

python学习第4天---django框架---MVT综合小练习


目录


内容

1、Django MVT简介

  Django的MVT模式

  • M: Model, 模型 与MVC中的M相同,负责对数据的处理
  • V: View, 视图 与MVC中的C类似,负责处理用户请求,调用M和T,响应请求
  • T: Template, 模板 与MVC中的V类似,负责如何显示数据(产生html界面)
  • 图示1-1:在这里插入图片描述

2、演示

  • 首页2-1:
    在这里插入图片描述
  • 书籍列表页2-2:
    在这里插入图片描述
  • 英雄列表页2-3:
    在这里插入图片描述

3、代码

  • 目录结构:

在这里插入图片描述

  • 路由:
    • 项目路由:book_manage_system/urls.py

        urlpatterns = [
        	url(r'^admin/', admin.site.urls),
        	url(r'^book/', include('book.urls')),
      
      
        ]
      
    • 应用路由:book/urls.py

        from django.conf.urls import url
        from book import views
      
        urlpatterns = [
        	# 通过url函数设置url路要配置项
        	url(r'^index$', views.index),
        	url(r'^book_list$', views.book_list),
        	url(r'^book_list/(\d+)$', views.hero_list),
        ]
      
  • 视图:book/views.py
from django.shortcuts import render
from book.models import Book
from book.models import Hero


# Create your views here.
def index(request):
    # return HttpResponse('欢迎进入书籍管理系统')
  	pass


def book_list(request):
    '''书籍列表展示'''
    books = Book.objects.all()
    return render(request, 'book/book-list.html', {'book_list': books})


def hero_list(request, bid):
    '''英雄介绍'''
    # 1、根据bid查询图像对象
    book = Book.objects.get(id=bid)
    # 2、根据图书对象查询管理的英雄对象
    heros = book.hero_set.all()
    return render(request, 'book/hero_list.html', {'hero_list': heros})

  • 模板:book_manage_system/templates/book/*
    • index.html

        <!DOCTYPE html>
        <html lang="en">
        <head>
        	<meta charset="UTF-8">
        	<title>Title</title>
        	<style>
        		.test {
        			width: 200px;
        			height: 100px;
        			margin: 0 auto;
        		}
      
        		li {
        			color: green;
        		}
        	</style>
      
      
        </head>
        <body>
        <div class="test">
        	<h3 style="color: orange">书籍管理首页</h3>
        	<hr>
        	<a href="http://127.0.0.1:8000/book/book_list">书籍列表</a>
        </div>
        </body>
        </html>
      
    • book-list.html

        <!DOCTYPE html>
        <html lang="en">
        <head>
        	<meta charset="UTF-8">
        	<title>图书管理系统</title>
        	<style>
        		.test {
        			width: 200px;
        			height: 100px;
        			margin: 0 auto;
        		}
      
        		li {
        			color: green;
        		}
        	</style>
        </head>
        <body>
        <div class="test">
        	<h3 style="color: orange">书籍管理首页</h3>
        	<hr/>
        	<table border="1">
        		<thead>
        		<tr>
        			<th>ID</th>
        			<th>书籍名称</th>
        			<th>出版时间</th>
        			<th>点击查看英雄介绍</th>
        		</tr>
        		</thead>
        		<tbody>
        		{% for book in book_list %}
        		<tr>
        			<td>{{ book.id }}</td>
        			<td>{{ book.title}}</td>
        			<td>{{ book.publishing_time}}</td>
        			<td><a href="http://127.0.0.1:8000/book/book_list/{{ book.id}}">点击查看</a></td>
        		</tr>
        		{% endfor %}
        		</tbody>
        	</table>
        		<a href="http://127.0.0.1:8000/book/index">返回</a>
      
        </div>
        </body>
        </html>
      
    • hero-list.html

        <!DOCTYPE html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <title>图书管理系统</title>
            <style>
                .test {
                    width: 200px;
                    height: 100px;
                    margin: 0 auto;
                }
        
                li {
                    color: green;
                }
            </style>
        </head>
        <body>
        <div class="test">
            <h3 style="color: orange">书籍管理首页</h3>
            <hr/>
            <table border="1">
                <thead>
                <tr>
                    <th>ID</th>
                    <th>书籍名称</th>
                    <th>出版时间</th>
        
                </tr>
                </thead>
                <tbody>
                {% for hero in hero_list %}
                <tr>
                    <td>{{ hero.id }}</td>
                    <td>{{ hero.name}}</td>
                    <td>{{ hero.sect}}</td>
                </tr>
                {% endfor %}
                </tbody>
            </table>
            <a href="http://127.0.0.1:8000/book/book_list">返回</a>
        </div>
        </body>
        </html>
      

后记

  本项目为参考某音python系列视频。上面为自己参考写的学习笔记,持续更新。欢迎交流,本人QQ:806797785

  1. 原视频地址:https://space.bilibili.com/277754748?spm_id_from=333.788.b_765f7570696e666f.1
  2. 笔记项目源代码地址:https://gitee.com/gaogzhen/python
发布了22 篇原创文章 · 获赞 6 · 访问量 6768

猜你喜欢

转载自blog.csdn.net/gaogzhen/article/details/105416107