美文网首页
5.django视图函数

5.django视图函数

作者: 马梦里 | 来源:发表于2017-12-04 23:19 被阅读0次

一、首页

from django.shortcuts import render
from django.http import HttpResponse
from django.http import HttpResponseRedirect
from .models import User, Category, Page

def index(request):
    categories = Category.objects.all()
    pages = Page.objects.all().order_by('created_time')
    context = {
        'categories': categories,
        'pages': pages
    }
    return render(request, 'mamengli_blog/index.html', context)

1.数据操作(数据模型)

// 获取所有数据,返回列表
Category.objects.all()
// 对数据进行排序
Page.objects.all().order_by('created_time')

// 获得具体字段名course的数据
// 通过外键反向查找,先找到具体的course,再找出course下的所有文章
category = Category.objects.get(course = category_name_slug)
pages = category.page_set.all()

2.模板操作

模板操作离不开两个函数

from django.shortcuts import render
from django.shortcuts import render_to_response
render(self,template,context)
render(template,context)

很明显后一个函数更简洁,少一个参数。context为上下文变量,与模板进行交互,可以用locals()代替,传入所有变量,但这样会使数据处理量增大;

二、课程文章列表

def page_list(request, category_name_slug):
    category = Category.objects.get(course = category_name_slug)
    pages = category.page_set.all()
    context = {
        'pages': pages
    }
    return render(request, 'mamengli_blog/page_list.html', context)

1.数据操作

这个主要就是通过传递进来的参数获得课程,再通过课程获得课程下面的所有文章,有一个外键的操作。

三、具体文章

def page_detail(request, category_name_slug, page_id):
    category = Category.objects.get(course=category_name_slug)
    page = category.page_set.get(id = page_id)
    context = {
        'page':page
    }
    return render(request, 'mamengli_blog/page_detail.html', context)

注意两点:

1.url传过来两个参数,在视图函数多加两个位置参数;
2.不能直接用id获取文章,因为你不知道这个文章属于哪个课程。所以先通过第一个参数拿到课程,再通过第二个参数拿到该课程下的文章。

相关文章

  • 5.django视图函数

    一、首页 1.数据操作(数据模型) 2.模板操作 模板操作离不开两个函数 很明显后一个函数更简洁,少一个参数。co...

  • 5.Django视图系统

    Django视图系统 Django的View一个视图函数(类),简称视图,是一个简单的Python 函数(类),它...

  • Django重温2

    1 ..类视图 1.1 类视图引入 以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路...

  • Flask视图:视图函数,类视图,蓝图使用方法整理

    摘要:Flask,视图,视图函数,类视图,方法视图,装饰器,蓝图 视图函数 在Flask中路由是指用户请求的URL...

  • Django源码分析--01类视图

    1.类视图的引入 以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路径提供了多种不同H...

  • URL与视图函数的映射

    今天跟大家讲的是URL与视图函数的映射 URL与视图函数的映射 url与视图函数的映射是通过@app.route(...

  • 三十一:Django之视图使用

    一:定义视图函数 视图函数定义在views.py中,视图函数必须有个request参数,进行处理后,需要返回Htt...

  • 视图函数(Controller)

    视图函数(Controller)如何设计视图函数1.用户的每个操作(用户故事)对应一个视图函数。数据的完整性: 实...

  • Flask 构建微电影视频网站(4.2)

    添加预告 视图函数 app/templates/admin/preview_add.html 预告列表 视图函数 ...

  • Django视图层

    Django视图 一、URL调度器 在工程目录下的urls.py对视图路由进行配置: 二、视图函数 一个视图函数,...

网友评论

      本文标题:5.django视图函数

      本文链接:https://www.haomeiwen.com/subject/sgnfixtx.html