Django的MVT模式
Django的MVT模式其实思想是跟MVC模式是一样的,只不过Django的说法不一样,M就是model,这里编写项目所需要的数据,也就是负责与数据库交互的部分,T就是template就是显示页面,V就是view,用来接收请求,调用数据,配置url,具体详细的可以在网上的其他博客有详细解释,我这里用代码来说明
我的整个项目结构是这样的:
template是模板文件,booktest是我的项目开发文件夹
booktest/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)
]
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
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
{% for book in List %}
<li><a href="{{ book.id }}">{{ book.btitle }}</a> </li>
{% endfor %}
</ul>
</body>
</html>
show.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
{%for hero in list%}
<li>{{hero.hname}}</li>
{%endfor%}
</ul>
</body>
</html>
这样就可以把数据库的数据传递到前台去