Django模板语言要点速记

View层

  • view中会定义多个函数,分别用来处理用户访问请求,最终都会返回render(request, 'x.html', context)
  • context将数据库中的要取数据和网页中要显示的部分(填空的部分)做映射
  • context参数为字典结构
  • template中被替换的内容格式{{ title }},{{ }}中间变量为context字典的中key,最终网页呈现的是context字典中的值。相当于context中的key为template所能调用的变量
    context.png
context = {
    'ArtiInfo':loaded
    'title':'just a title'
    #相当于'ArtInfo' = loaded
    #相当于'title'='just a title'
}

{{ item.title }}

model层

  • model层相当于数据库的代理,从数据库中取出数据,放到context参数中,最终映射到template中
  • 首先,model层需要先从setting层加载数据库
from mongoengine import connect
connect('wbsite', host='127.0.0.1', port=27017)
  • mongoengine将数据库中数据以面向对象的方式进行操作
  • model层需要建立数据模型(用户自定义类),用于context来引用
class ArtiInfo(Document):
    des = StringField()
    title = StringField()
    scores = StringField()
    tags = ListField(StringField())
    #指定需要读取的sheet
    meta = {'collection':'arti_info3'}
for i in ArtiInfo.objects[:1]:
    print(i.title,i.des,i.scores,i.tags)

分页器(Paginator)

  • Django自带的一个分页插件包,用来实现网页分页功能
  • 需要在View层导入paginator module
from django.core.paginator import Paginator
  • Paginator类的主要用例
Paginator.png
  • View层Paginator代码的实现,注意request.GET.get('page',1)用法,以及context的写法
def index(request):
    limit = 4
    arti_info = ArtiInfo.objects[:20]
    paginatior = Paginator(arti_info,limit)
    page = request.GET.get('page',1)
    print(request)
    print(request.GET)
    loaded = paginatior.page(page)
    context = {
        'ArtiInfo':loaded
    }
    return render(request,'index.html',context)

Django模板语言

  • 在网页中使用类似python语法的代码实现数据映射
{% for item in ArtiInfo %}
    
  • {{ item.scores }}
  • {% endfor %}

    你可能感兴趣的:(Django模板语言要点速记)