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文件.重定向.一 ...
随机推荐
- [development][security][suricata] suricata 使用与调研
0: OISF:https://oisf.net/ 1: suricata是什么 https://suricata-ids.org/ 2:安装 https://redmine.openinfosecf ...
- [报错]ios开发 failed to read file attributes for
下载第三方demo,运行报错: failed to read file attributes for https://stackoverflow.com/questions/46301270/fa ...
- LeetCode 821 Shortest Distance to a Character 解题报告
题目要求 Given a string S and a character C, return an array of integers representing the shortest dista ...
- appium入门(1)__ appium介绍
摘自:http://www.testclass.net/appium/appium-base-summary/ 1.特点 appium 是一个自动化测试开源工具,支持 iOS 平台和 Android ...
- GIt如何进行代码管理
一:Git账号设置(仅第一次需设置): 1.首先打开GIt Bash 界面
- 洛谷P4587 神秘数 [FJOI2016] 主席树
正解:主席树 解题报告: 先放下传送门QAQ 首先可以先思考如果只有一组询问,怎么解决 可以这么想,最开始一个数也麻油的时候能表示的最大的数是0嘛 然后先排个序,按顺序每次新加入一个数x,设加入这个数 ...
- HD200703
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #inc ...
- nodejs 学习六 express 三种查询url参数方法
req.param() 是被废弃的api req.params 俗点:取带冒号的参数 req.body 可以肯定的一点是req.body一定是post请求,express里依赖的中间件必须有bodyP ...
- document的全量替换、强制创建、删除
1.document的全量替换(1)语法与创建文档是一样的,PUT /test_index/test_type/id ,如果document id不存在,那么就是创建:如果document id已经存 ...
- Linux I/O重定向
所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件,或者命令,程序,脚本,甚至脚本中的代码块的输出,然后把捕捉到的输出,作为输入 发送给另外一个文件,命令,程序,或者脚本.谈到I/O重定向,就 ...