Django学习(五) 定义视图以及页面模板
请求解析一般都是通过请求的request获取一定参数,然后根据参数做一定业务逻辑判断,这其中可能包括查询数据库,然后将需要返回的数据封装成一个HttpResponse返回。
代码如下:
这是一个简单的处理请求的函数,对应之前url映射的 url(r'^articles/([0-9]{4})/$', views.year_archive),django会将url中用()包起来的内容作为变量传给函数,此处year_archive中的year变量就是([0-9]{4})代表的值。
Article.objects.filter(pub_date__year=year)过滤出发布日期是year的数据。注意pub_date__year,数据库表中只有pub_date字段,pub_date__year代表值取年。
所以可以认为这是django默认提供的一种接口查询方式。
然后将返回的list列表和year再组装成一个字典数据。
最后调用django提供的函数render返回。render完成的事情其实就是选择一个模板,创建一个Context对象,然后将这些数据放到创建的一个HttpResponse中去。
mysite/news/views.py from django.shortcuts import render from .models import Article def year_archive(request, year):
a_list = Article.objects.filter(pub_date__year=year)
context = {'year': year, 'article_list': a_list}
return render(request, 'news/year_archive.html', context)
上面的代码其实是对以下数据进行了封装,render中封装了以下代码的作用。
from django.template import Template, Context
from django.http import HttpResponse
import datetime def current_datetime(request):
now = datetime.datetime.now()
# Simple way of using templates from the filesystem.
# This is BAD because it doesn't account for missing files!
fp = open('/home/djangouser/templates/mytemplate.html')
t = Template(fp.read())
fp.close()
html = t.render(Context({'current_date': now}))
return HttpResponse(html)
Django学习(五) 定义视图以及页面模板的更多相关文章
- Django学习笔记之视图高级-HTTP请求与响应
Django限制请求method 常用的请求method GET请求 GET请求一般用来向服务器索取数据,但不会向服务器提交数据,不会对服务器的状态进行更改.比如向服务器获取某篇文章的详情. POST ...
- Django学习 之后端视图与ajax
一.Ajax简介 在此之前你一定需要先学习下JavaScript JSON 可见: 前端学习 之 JavaScript 之 JSON 1.简单介绍 我们以前知道的前端向后端发送数据的方式有: GET: ...
- Django学习笔记之视图高级-CSV文件生成
生成CSV文件 有时候我们做的网站,需要将一些数据,生成有一个CSV文件给浏览器,并且是作为附件的形式下载下来.以下将讲解如何生成CSV文件. 生成小的CSV文件 这里将用一个生成小的CSV文件为例. ...
- Django学习笔记之视图高级-类视图
类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图.使用类视图可以使用类的一些特性,比如继承等. View django.views.generic.base.View是主 ...
- Django学习---路由url,视图,模板,orm操作
Django请求周期 url -> 路由系统 ->函数或者类 -> 返回字符串 或者 模板语言 Form表单提交: 点击提交 -> 进入url系统 -> 执行函数 ...
- Django学习日记06_视图_URLconf、View
URLconf Django通过URLconf来响应网页请求,在项目设置settings.py中,设定了ROOT_URLCONF值来指定默认的URLconf(即mysite.urls),当HTTPRe ...
- Django学习之 - 基础视图函数
视图:Views 获取用户请求的方法: 1: request.GET 2: request.POST 3: request.FILES # checkbox 等多选文件 4:request.POST. ...
- Django学习路35_视图使用方法(复制的代码) + 简单总结
from django.shortcuts import render,redirect from django.http import HttpResponse,JsonResponse from ...
- django 学习-6 定义模型--数据库的使用
1.service mysqld start 首先数据库是可用的 2.rpm -qa |grep MySQL-python 这个包是存在的 3.vim settings 修改databases 加 ...
随机推荐
- Android平台上使用气压传感器计算海拔高度
气压传感器两年前已经开始被手机制造商运用在其设备上,但貌似没有引起开发者足够的重视.像Galaxy S III .Galaxy Note 2和小米2手机上都有,不过大家对于气压传感器比较陌生.其实大气 ...
- CC2530 PWM波形产生。
1.使用TIM3_CC1,相关联引脚P1_7 #define GPIOPWM() do{P1SEL |= 0x80;}while(0);#define GPIOCLOSEPWM() do{P1SEL ...
- iOS开发之MD5封装及应用
一.MD5的封装 #define CC_MD5_DIGEST_LENGTH 16 - (NSString *)toMD5 { const char* input = [self UTF8String] ...
- 能让汇编转到C51的初学者有更清晰的认识的一篇文章
8051 是傳統 CISC 架構微控制器的代表,而 PIC 則是現代 RISC 架構微控制器的佳作. 雖然說 RISC 架構是公認未來微控制器的主流,但是 8051 藉著累積多年的發展環境與資源,特別 ...
- python中的继承原则
继承是面向对象的重要特征之一,继承是两个类或者多个类之间的父子关系,子进程继承了父进程的所有公有实例变量和方法.继承实现了代码的重用.重用已经存在的数据和行为,减少代码的重新编写,python在类名 ...
- yii基础知识-应用
应用是指请求处理中的执行上下文.它的主要任务是分析用户请求并将其分派到合适的控制器中以作进一步处理. 它同时作为服务中心,维护应用级别的配置.鉴于此,应用也叫做前端控制器. 应用由 入口脚本 创建为一 ...
- 【转】android移植之request_suspend_state: wakeup & init: untracked pid xx exited问题的解决
原文网址:http://blog.csdn.net/dragon101788/article/details/8187880 Bluetooth: HIDP (Human Interface Emul ...
- MySQL数据库配置主从服务器实现双机热备
转自:http://www.cnblogs.com/cchun/p/3712637.html 一.安装MySQL 说明:在两台MySQL服务器192.168.21.169和192.168.21.168 ...
- MongoDB GUI管理工具Mongo VUE
一.前言 现在越来越多的公司开始采用非关系数据库了,并且很多公司的面试都要求面试 者有MongoDB的使用经验,至于非关系数据库与关系型数据库之间的区别大家可以自行百度.但是作为程序员的我们,既然大部 ...
- 【poj】1001
[题目] ExponentiationTime Limit: 500MS Memory Limit: 10000KTotal Submissions: 123707 Accepted: 30202De ...