Django的MVT模式

Django的MVT模式

Django的MVT模式其实思想是跟MVC模式是一样的,只不过Django的说法不一样,M就是model,这里编写项目所需要的数据,也就是负责与数据库交互的部分,T就是template就是显示页面,V就是view,用来接收请求,调用数据,配置url,具体详细的可以在网上的其他博客有详细解释,我这里用代码来说明

我的整个项目结构是这样的:
Django的MVT模式_第1张图片
template是模板文件,booktest是我的项目开发文件夹
booktest/models.py里面书写项目所需要的数据字段

models.py

from django.db import models

class bookinfo(models.Model):
    btitle = models.CharField(max_length=20)
    bpub_data = models.DateTimeField()

    def __str__(self):
        # btitle=str(self.btitle)
        return self.btitle


class HeroInfo(models.Model):
    hname = models.CharField(max_length=10)
    hgender = models.BooleanField()
    hcontent = models.CharField(max_length=1000)
    hbook = models.ForeignKey('bookinfo', on_delete=models.CASCADE)

    def __str__(self):
        hname=str(self.hname)
        return self.hname

这里就是对应着数据库的字段
urls.py

from django.conf.urls import url
from . import views

urlpatterns=[
    url(r'^index$',views.index),
    url(r'^(\d+)$',views.show)
]

views.py

from django.shortcuts import render
from django.http import *
from .models import *
def index(request):
    bookList=bookinfo.objects.all()
    content={'List':bookList}
    return render(request,'booktest/index.html',content)
    #return HttpResponse('hello world')
def show(request,id):
    book = bookinfo.objects.get(pk=id)
    herolist = book.heroinfo_set.all()
    context = {'list': herolist}
    return render(request, 'booktest/show.html', context)

urls.py和views.py定义了路由和调用数据,views.py里面调用的数据库字段是我已经写好的了

最后在template文件夹是我的模板文件
index.html




    
    Title





show.html




    
    Title


    {%for hero in list%}
  • {{hero.hname}}
  • {%endfor%}

这样就可以把数据库的数据传递到前台去

你可能感兴趣的:(Python)