首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

django 1.8 官方文档翻译: 3-1-2 编写视图

响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片… 是任何东西都可以。无论视图本身包含什么逻辑,都要返回响应。...你需要创建URLconf来展示特定的URL这一视图; 详见URL 分发器。 返回错误 Django中返回HTTP错误是相当容易的。...如果你视图函数中的任何地方抛出Http404异常,Django都会捕获它,并且带上HTTP404错误码返回你应用的标准错误页面。...,你应该创建一个用来404错误产生时展示的模板。...这个模板应该叫做404.html,并且在你的模板树中位于最顶层。 如果你抛出Http404异常时提供了一条消息,当DEBUG为True时它会出现在标准404模板的展示中。

54130

DRF对Django请求响应做了技术升级

Django视图是用来处理请求和响应的,Django默认是按Form和Template来设计的,如果要处理以JSON格式为主的RESTful API,那么就需要对Django请求和响应的处理代码进行优化改造...ret.encode(charset) if not ret: del self['Content-Type'] return ret Status codes 如果在代码中直接写数字形式的状态码如...500 HTTP_502_BAD_GATEWAY = 502 HTTP_503_SERVICE_UNAVAILABLE = 503 HTTP_504_GATEWAY_TIMEOUT = 504 全部的状态码标识符可以...它们提供了一些新功能,比如: 检查请求是Request对象 添加上下文到Response对象 返回请求错误如405 Method Not Allowed 当request.data格式有误时,抛出ParseError...东方说 最近测试开发和业务测试的话题频频出现在TesterHome论坛,讨论激烈,我觉得从公司的角度来说,只会关注员工的产出有没有给公司带来价值,无论技术多厉害,不能创造价值终究是会优先被裁的。

86820
您找到你想要的搜索结果了吗?
是的
没有找到

Django】 开发:补充知识

:返回一页的页码,如果一页不存在,抛出 InvalidPage 异常 len ():返回当前页面对象的个数 说明: Page 对象是可迭代对象,可以用 for 语句来 访问当前页面中的每个对象 参考文档...部署要分以下几个步骤进行 安装机器安装和配置同版本的环境 django 项目迁移 $ sudo scp 当前项目源代码 远程主机地址和文件夹 sudo scp /home/tarena/django...: 浏览器端输入 http://127.0.0.1 进行测试 注意 : 1,此时端口号为 80 (nginx 默认值) 2,Django 中有任何修改 需要重启 uwsgi , 否则修改不生效 nginx.../500 界面 模板文件夹内添加 404.html 模版,当视图触发 Http404 异常时将会被显示 404.html 仅在发布版中 (即 setting.py 中的 DEBUG=False 时)...# 直接返回404 邮件告警 报错邮件中会显示一些错误的追踪,这些错误追踪中会出现如 password等敏感信息,Django已经将配置文件中的敏感信息 过滤修改为 多个星号,但是用户自定义的视图函数需要用户手动过滤敏感信息

6.4K30

python为Django项目的每个应用程序创建不同的自定义404页面(最佳答案)

有没有一种方法可以为Django项目中的每个应用程序创建多个自定义错误模板,我的意思是,我的项目中,我有3个应用程序,每个应用程序将显示3种不同的custom 404错误....知识点补充: Django 自定义 404 500 等错误页面 起步 要想自定义错误页面,需要关闭调试模式DEBUG = False ,因为调试模式的错误页面是开发下会显示错误信息的。...源码django.views.defaults.py 中: ERROR_404_TEMPLATE_NAME = ‘404.html’ def page_not_found(request, exception...= [ ... ] 除了能捕获不存在路由地址,还能捕获视图中raise Http404('message') 抛出的异常。...哪些错误页面可以配置 具体能自定义错误页面的有 4 中状态码: # django.views.defaults.py ERROR_404_TEMPLATE_NAME = ‘404.html’ ERROR

1.8K30

「跳转404错误页面」「全局异常捕获」

前言 本文教程示例代码见码云仓库:https://gitee.com/bingqilinpeishenme/boot-demo 异常处理Java中是一种很常规的操作,代码中我们常用的方法是try catch...业务层的异常可以Controller捕获,Controller抛出的异常怎么捕获?SpringMvc的异常怎么捕获?...这个时候常见的操作有两种: 跳转错误页面,例如:找不到路径的时候跳转404代码报错的时候跳转500等 响应统一的报错信息,使用Result对象(自定义的实体类)封装错误码,错误描述信息响应【分布式服务调用的时候推荐使用...以上就是跳转404和统一响应数据的操作,但是还有问题,什么问题呢? 以上的操作实际没有针对异常进行捕获,而是根据响应状态码进行不同的处理的,那么如果才能针对不同的异常进行捕获呢?...测试的要求是: 捕获自定义异常,封装Result对象以json的格式响应 捕获自定义异常,跳转到错误页面 1.自定义异常 应用开发过程中,除系统自身的异常外,不同业务场景中用到的异常也不一样,很多时候需要自定义异常

1.5K30

Django(50)drf异常模块源码分析

response = exception_handler(exc, context) # 如果响应为内容为空,则抛出异常 if response is None:...By default we handle the REST framework `APIException`, and also Django's built-in `Http404` and...set_rollback() return Response(data, status=exc.status_code, headers=headers) return None 从上述代码我们可以知道...,当response返回为None时,是不会返回异常信息,而是直接抛出异常,所以我们可以自定义异常类 自定义异常 我们的app目录下,创建utils包,并创建exceptions文件,并写入如下源码...': 'drf_app.utils.exceptions.exception_handler', } 以后碰到response响应为None的时候,我们就会抛出服务器错误的异常信息 总结 为什么要自定义异常模块

23930

Django 自定义404 500等错误页面的实现

如果单纯django里面可以处理吗?肯定是可以的,django提供了相应的处理方式,只要在django里 起步 面定义了,无论你今后部署apache下或者是nginx下,都是生效的。...项目模板文件夹templates 中创建命名为404.html 的模板文件即可。 这个方式是其实是借用了 Django 的模板查找规则进行的。...= [ ... ] 除了能捕获不存在路由地址,还能捕获视图中raise Http404(‘message’) 抛出的异常。...哪些错误页面可以配置 具体能自定义错误页面的有 4 中状态码: # django.views.defaults.py ERROR_404_TEMPLATE_NAME = '404.html' ERROR...handler500 = defaults.server_error 到此这篇关于Django 自定义404 500等错误页面的实现的文章就介绍到这了,更多相关Django自定义404 500错误页面内容请搜索

1.4K20

Django来敲门~第一部分【6.2 HTML视图模板】

Django为了方便我们进行HTML网页视图模板的处理,提供了一个快捷进行网页模板渲染的方式:render() 干货:修改上面的index函数中的视图处理的代码: from django.shortcuts...处理异常 页面出现的异常情况,我们有一些特殊的状态处理方式,如常规情况下在HTTP协议中有一些特殊的状态编码,如404表示访问的资源不存在,500表示服务器内部错误等等,Django中,我们也可以这么干...首先,捕获到用户访问的数据不存在的异常,然后抛出一个异常对象 改造polls/views.py中的detail函数如下: from django.http import Http404 # 问题详情函数...有就返回数据,没有就返回404,针对两种结果,django封装了一个好玩的函数来进行处理 # 获取对象,如果对象不存在就抛出404异常 get_object_or_404() 我们改造一下detail视图处理函数...补充:关于开发模式和生产模式 我们目前的章节中,默认是使用开发模式【就是适合代码开发的软件环境,有更多的错误提示信息】,包括页面的展示也是使用的开发模式的错误提示 进行项目发布时,需要将开发模式转换成生产模式

98420

Django 系列博客(一)

那么本篇博客介绍 Django 的安装以及如何在电脑运行第一个 Django 应用。...Django 的安装 Django 的安装很简单, win 和 mac 上面都可以使用 pip 安装命令安装,也可以通过 pycharm 安装,或者下载文件命令行使用安装工具安装。...接下来我 ubuntu 安装做示例。 ? 在这里还安装了一个依赖包 pytz。这是用来做时区转换的一个第三方库。...基于 TCP/IP协议基础的应用层协议,底层实现仍为 socket 基于请求-响应模式:通信一定是从客户端开始,服务端接收到客户端一定会做出对应响应状态:协议不对任何一次通信状态和任何数据做保存...客户端将服务端的响应展现给用户 HTTP 状态码 1开头: ?

48020

测试开发进阶(二十)

Django基础 1.为什么要使用框架来开发 站在巨人的肩膀 提升开发效率 只关注业务逻辑的实现,不关心底层建设 2.Django vs Flask Django 大而全 入门简单 最流行 类似于精装修的房子...创建子应用 业务功能模块复用 将工程项目拆分为不同的子功能模块,以子应用的形式存在 各功能模块间可以保持相对的独立 可以将该模块代码整体复制过去 创建 $ python manage.pt startapp...注册 全局配置文件 settings.py中 INSTALLED_APPS添加 'projects.apps.ProjectsConfig' INSTALLED_APPS = [ 'django.contrib.admin...(或子路由) 如果匹配不上会自动抛出404异常 5....404异常 视图 函数视图 def index(request): return HttpResponse('「测试游记」') 上面就是一个 函数视图 视图函数第一个参数 request

51930

django 1.8 官方文档翻译: 1-2-3 编写你的第一个Django应用,第3部分

快捷方式: get_object_or_404() 这很常见,当你使用 get() 获取对象时 对象却不存在时就会抛出 Http404 异常。对此 Django 提供了一个快捷操作。...若对象不存在时就抛出 Http404 异常。...若返回的是空列表将抛出 Http404 异常。 编写一个 404 ( 页面未找到 ) 视图 当你视图中抛出 Http404 时,Django 将载入一个特定的视图来处理 404 错误。...编写一个 500 ( 服务器错误 ) 视图 类似的,你可以 root URLconf 中定义 handler500 变量,服务器发生错误时 调用它指向的视图。...服务器错误是指视图代码产生的运行时错误。 同样,你模板根目录下创建一个 500.html 模板并且添加些像“出错了”的内容。

1.8K50

让你的Django应用变DRY的几个最佳实践

目前Python的Web框架中被应用最广泛的就是DjangoDjango REST Framework. 这两种框架都提供了非常健壮的功能,能满足Web开发的各个方面。...RESTful规范中,无鉴权信息是401错误而无权限是403错误DRF的官方文档中有详细例子这里就不再赘述。...,修改内部数据不起作用 若重新构造一个rest_framework.response.Response则会报未渲染错误,而渲染过程比较复杂 若选择用django.http.response.JSONResponse...,有些是主动抛出、有些是未捕获的异常,在这些情况下,我们都希望日志记录异常的堆栈信息,然后返回一个规范的响应(格式与一节中一致),这样我们就需要更改异常处理。...总结 DRY原则能使你的代码结构好、易维护、易扩展。日常的开发中,要时刻反思自己的代码是否过于重复,可以精简。Python中,可以说只要你想,一定能把多处一样的代码给抽取出来。

1.7K50

DRF框架学习(三)

1.2类视图的两个基类 1.2.1APIView 是View类的子类,view类的基础添加了一些额外的功能。...2.响应时可以统一返回Response类的对象 3.异常处理:如果视图中抛出了未处理异常,DRF框架会自动对异常进行处理,并且会把处理之后的错误信息返回给客户端。...例如 Http404这个系统处理过的处理异常的方法,我们直接将它抛出,客户端就可以收到处理之后的错误信息,不会是404页面,而是错误信息,如“未找到“。...为了方便设置状态码,REST framewrok rest_framework.status模块中提供了常用状态码常量,我们直接使用即可。...1.2.2GenericAPIView 继承于APIView,是APIView的子类,APIView的基础添加操作序列化器和数据库查询的方法。封装的这些方法,我们可以直接使用。

1.1K20

测试开发进阶(二十五)

痛点 代码冗余极其严重,不符合优秀测开风格 数据校验非常麻烦,且可复用性差 编码没有统一的规范,杂乱无章的感觉 写的代码非常多,不够简洁 仅支持json格式的传参,不支持form表单传参 仅能返回json...格式的数据,其他类型不支持 列表页视图没有分页,过滤,排序功能 Django REST framework Django框架基础,进行二次开发 用于构建Restful API 简称为DRF框架或REST...逐步优化之前的代码 之前「快速创建实例」部分为演示最终效果,现在先恢复到原有状态 创建序列化 创建 projects/serializer.py 需要输出哪些字段,那么序列化器中就定义哪些字段 from...上面这个错误有些不合理。...第二次优化的完整代码 import jsonfrom django.http import JsonResponse, Http404from projects.models import Projectsfrom

79030

ASP.NET Core 6框架揭秘实例演示:异常处理高阶用法

图4 定制的错误页面 [2112]清除缓存响应报头 由于相应缓存缓存在大部分情况下只适用于成功状态响应,如果服务端处理请求过程中出现异常,之前设置的缓存报头是不应该出现在响应报文中的。...[2113]针对404响应的处理 ExceptionHandlerOptions 配置选项的AllowStatusCode404Response属性则表示该中间件是否允许最终返回状态码为404响应。...该属性默认值为false,这意味着默认情况下,为该中间件指定的异常处理器不能返回404响应,此时该中间件会将原始的异常抛出来。...我们将DeveloperExceptionPageMiddleware中间件注册到这两个路由分支,采用的异常处理器都会将响应状态码设置为404。...但是应用程序往往具有自身的异常处理策略,也许某些情况下就应该回复一个状态400~599区间内的响应,该中间件就不应该对当前响应做任何干预的。

1.1K20

Django学习笔记之Web框架由浅入深和第一个Django实例

conn, addr = sk.accept() data = conn.recv(8096) conn.send(b"OK") conn.close() 可以说Web服务本质都是在这十几行代码基础扩展出来的...让我们首先打印下我们服务端接收到的消息是什么。...响应相关信息可以浏览器调试窗口的network标签页中看到。 ? 点击view source之后显示如下图: ? 我们发现收发的消息需要按照一定的格式来,这里就需要了解一下HTTP协议了。...刚开始学习时可在配置文件中暂时禁用csrf中间件,方便表单提交测试。...练习: Django版登录 启动Django报错: Django 启动时报错 UnicodeEncodeError ... 报这个错误通常是因为计算机名为中文,改成英文的计算机名重启下电脑就可以了。

70220

Django 相关

让我们首先看下我们服务端接收到的消息是什么。 然后再看下我们浏览器收到的响应信息是什么。 响应浏览器的network窗口可以看到,我们看到的HTML页面内容就是响应体。...本质还是字符串,因为浏览器认识HTML,所以才会渲染出页面。 HTTP协议介绍 每个HTTP请求和响应都遵循相同的格式,一个HTTP包含Header和Body两部分,其中Body是可选的。...start_response): start_response('200 OK', [('Content-Type', 'text/html;charset=utf8')]) # 设置HTTP响应状态码和头信息...我这里用的特殊符号是我定义的,其实模板渲染有个现成的工具: jinja2 下载 jinja2: 有两种方式 1、CMD终端上 pip install jinja2 2、PyCharm执行 ?...}, ] 刚开始学习时可在配置文件中暂时禁用csrf中间件,方便表单提交测试

829110
领券