Django中的View视图讲解
Django中的View视图(view.py)是负责处理用户请求和返回响应的逻辑。
视图函数或视图简而言之就是一个python函数,它接受一个web请求并返回一个Web响应。
此响应可以是网页的HTML内容,重定向或404错误,XML文档或图像。
一个简单的视图:
from django.http import HttpResponse
import datatime
def current_datetime(request):
now = datatime.datatime.now()
html = "<html><body>It is now %s.</body></html>"% now
return HttpResponse(html)
一般不使用以上代码的形式,这里只为做返回页面理解用,如果把html标签都写到代码中是很麻烦的,我们可以这样写,在templates文件夹下创建一个html文件,然后给render()传递参数的形式来进行跳转。
返回错误
直接返回一个404,没有去加载404的模板页面
return HttpResponseNotFound(''<h1>page not found</h1>)
可以直接返回一个status状态码
return HttpResponse(status=403) #返回一个请求遭到拒绝的界面
返回一个404的错误页面
raise Http404(Poll does not exist) #如果不指定自己创建的404的界面,则返回默认的404界面,如果指定界面是在templates文件夹下创建404.html,系统会自动找到该界面。
注意:写404页面的时候需要注意一下几点
1、在settings.py配置文件中修改DEBUG=False
2、ALLOWED HOSTS=['*'] 指定下地址,*为接收所有
关于重定向
重定向就是通过各种方法将各种网络请求重新定个方向转到其他位置
from django.shortcuts import redirect
#redirect重定向一个界面 reverse反向解析url地址
return redirect(reverse(‘userindex’))
反向解析:reverse()就是反向解析的函数,参数为子路由的url(r'^$',views.index,name="myhome_index") name属性的值,这样可以在views.py中通过reverse(myhome_index)就找到了views.index,这就叫反向解析。 使用reverse()需导入包 from django.core.urlresolvers import reverse
reverse(‘userindex’) 返回的是路径
#执行一段js代码,用js进行重定向
return HttpResponse('<script>alert("添加成功");location.href="/userindex";</script>')
#加载一个提醒信息的跳转页面
context={}
Django中的View视图讲解的更多相关文章
- Django框架 之 view视图
Django框架 之 view视图 浏览目录 概述 简单的视图 HttpRequest对象 CBV和FBV 给视图加装饰器 Request对象 Response对象 JsonResponse对象 Dj ...
- [Django]中建立数据库视图
Django中建立数据库视图 Django中没有建立视图的接口.假设要建立一个视图须要一些手动的改变. 这里使用的Django 版本号>1.5, 使用的数据库为mysql 第一步 建立视图,比如 ...
- Django中的CBV视图
Web 开发是一项无聊而且单调的工作,特别是在视图功能编写方面更为显著.为了减少这种痛苦,Django植入了视图类这一功能,该功能封装了视图开发常用的代码,无须编写大量代码即可快速完成数据视图的开发, ...
- django中的类视图
# 原创,转载请留言联系 当我们在开发一个注册模块时.浏览器会通过get请求让注册表单弹出来,然后用户输完注册信息后,通过post请求向服务端提交信息.这时候我们后端有两个视图函数,一个处理get请求 ...
- Django中CBV View的as_view()源码解析
CBV与FBV路由区别 urlpatterns = [ url(r'^publish/$', views.Publishs.as_view()), # CBV写法 url(r'^publish/$', ...
- Android中不能在子线程中更新View视图的原因
这是一条规律,很多coder知道,但原因是什么呢? 如下: When a process is created for your application, its main thread is ded ...
- django中的view测试和models测试样例
感觉用model_mommy比factory_boy要好些. 如果Models.py如下: from django.db import models from django.contrib.auth. ...
- Django框架——基础之视图系统(View.py)
Django框架之View.py(视图文件) 1. 视图简介 视图层是Django处理请求的核心代码层,我们大多数Python代码都集中在这一层面. 它对外接收用户请求,对内调度模型层和模版层,统合数 ...
- Django框架详细介绍---视图系统
Django视图系统 1.什么是视图 在Django中,一个视图函数/类,称为视图.实质就是一个用户自定义的简单函数,用来接收WEB请求并xing响应请求,响应的内容可以是一个HTML文件.重定向.一 ...
随机推荐
- 问题:虚拟环境名字相同遇到bug,please specify a different sdk name?
1.please specify a different sdk name? 这个问题出现的原因是因为PyCharm中存在相同名字的虚拟环境变量. 本人的出错原因是,一直使用PyCharm的默认设置来 ...
- [git] 关闭 git branch 的pager
高版本的git做了pager的调整. git diff git log git branch 等命令都用了pager, 默认的pager用了less 在我的应用里, 通常branch只有那么3,5个. ...
- 安装graphlab伤透了心,终于搞定了
为了方便研究各种机器学习算法,我想用graphlab来辅助我对后续算法的研究.所以我的目标就是安装graphlab到我的windows笔记本中.而基于python的graphlab的安装最好是采用如下 ...
- 关于webpack,babel,以及es6和commonJS之间的联系(转)
add by zhj: babel是将es6转为es5,而webpack从名字也能看出来,是一个打包工具,根据文件之间的依赖关系,将文件进行打包 原文:https://blog.csdn.net/a2 ...
- pl/sql中文乱码
增加系统变量变量名:NLS_LANG变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
- MongoDB 查询$关键字 $in $or $all
属于:$in 满足其中一个元素的数据把age=13,73 的数据显示 > db.user.find({age: { $in:[13,73]}}) { "_id" : Obje ...
- C#实体对象出现中文处理乱码的问题
问题: C#实体对象使用时,对于是中文的增加时,到数据库后变成了?? 解决方法: 增加实体对象时“新建连接”操作中的高级中要设置属性Character Set=urf8 (要手动输入)
- what's the 单例模式
what's the 单例模式 单例模式,是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例.即一个类只有一个对象实例 ...
- MySQL的nnodb引擎表数据分区存储
Symlinks are fully supported only for MyISAM tables. 对应Innodb引擎数据文件放到其他目录 mysql> SHOW VARIABLES L ...
- 【C++问题整理】
一.static 1.作用: 静态变量/函数:在整个文件内可见,不会被其他文件所用:静态变量:会被自动初始化为0: 类中的静态变量:类的成员,类对象公用 类中的静态函数:只能访问静态变量 2 ...