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文件.重定向.一 ...
随机推荐
- 字母算术的python算法
据说Google出过一道题目:WWWDOT – GOOGLE = DOTCOM. 其中每个字母代表一个数字,数字不能重复,而且最高位的数字不能为0. 像这样的谜题被称为cryptarithms或者字母 ...
- JS之JSON.parse和JSON.stringify
这两个函数有兼容性问题, 会报错JSON"未定义 解决方案, 引入json2.js,可以解决浏览器的兼容性 https://link.jianshu.com/?t=https://githu ...
- [troubleshoot][automake] automake编译的时候发生死循环
在某台特有设备上,编译dssl工程时,竟然发生了死循环. https://github.com/tony-caotong/libdssl 错误日志如下: checking zlib.h presenc ...
- 20165225 2017-2018-2《Java程序设计》课程总结
20165225 2017-2018-2<Java程序设计>课程总结 - 每周作业链接汇总: 预备作业一:我期待的师生关系 预备作业二:学习基础和C语言基础调查 预备作业三:linux安装 ...
- mvc,EntityFramework调用分页存储过程
此文讲述mvc4+entityframework6+sqlserver2008环境下调用存储过程,实现分页. 1.分页存储过程代码如下: 分页原理用的row_number()和over()函数实现(没 ...
- 前端 HTML body标签相关内容 常用标签 标题标签 h1-h6
标题标签 h1~h6 <h1> - <h6> 标签可定义标题.<h1> 定义最大的标题.<h6> 定义最小的标题. 由于 h 元素拥有确切的语义,因此请 ...
- MySQL安装失败解决的方法
一..msi版的MySQL安装包在最后执行的时候到第三步就死掉了,直接未响应 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd19iYXNrZXRib3ky ...
- RadioButton使用
RadioButton和CheckBox差不多,这里只写一个,因为我本身不是学andorid,所以就当给自己留一个备份,省的每次用到都需要代码敲一次,很麻烦 1.如果想选中时想改变颜色可以设置一个xm ...
- 火币网API文档——WebSocket API Reference
订阅 KLine 数据 market.$symbol.kline.$period 成功建立和 WebSocket API 的连接之后,向 Server 发送如下格式的数据来订阅数据: { " ...
- Emmagee——开源Android性能测试工具
工具:Emmagee作者:孔庆云 网易(杭州)质量保证部 开源地址:https://github.com/NetEase/Emmagee Wiki:https://github.com/NetEase ...