本文实例讲述了Django框架视图函数。分享给大家供大家参考,具体如下:
视图函数即为处理HTTP请求的python函数。一般情况下,视图函数的功能是通过模型层对象处理数据,然后通过下面三种方式返回HTTP Response:
1.直接构造HTML页面
对于简单的页面,可以直接在视图函数汇总构造返回给客户端的字符串,通过HttpResponse函数封装后返回:
#views.py from django.http import HttpResponse import datetime def test(request): now = datetime.datetime.now().strftime("%y-%m-%d %h:%m:%s") return HttpResponse(now)
2.渲染HTML文件
模板文件渲染通过render函数实现:
from django.shortcuts import render from app.models import Moment def test(request, moment_id): m = Moment.objects.get(id=moment_id) return render(request, '/templates/moment.html', {'headlin':m.headline, 'user':m.user_name}) render函数的第一个参数是HTTP request, 第二个为html路径, 第三个模板参数
3.返回http error
HTTP错误通过HTTP头部status表达,通过HttpResponse构造参数status,返回http错误或者状态:
from django.http import HttpResponse def my_error(request): return HttpResponse(status=404)
解析:
可返回404状态码
对于常用status状态定义多个HttpResponse的子类,可以通过这些子类直接定义response
from django.http import HttpResponseNotFount def my_err(request): return HttpResponseNotFount()
跟上面的代码效果相同!
希望本文所述对大家基于Django框架的Python程序设计有所帮助。
本文向大家介绍在Python的Django框架中包装视图函数,包括了在Python的Django框架中包装视图函数的使用技巧和注意事项,需要的朋友参考一下 我们最终的视图技巧利用了一个高级python技术。 假设你发现自己在各个不同视图里重复了大量代码,就像 这个例子: 这里,每一个视图开始都检查request.user是否是已经认证的,是的话,当前用户已经成功登陆站点否则就重定向/account
我正在学习Django和Django REST框架。我正在尝试执行API并添加查看权限。 来自django。db从django导入模型。contrib。auth。模型导入用户 我的模特: 我的连载者: 我的看法: 当我尝试添加新“word”时-显示错误: 序列化程序或视图中存在问题?如何修复?
本文向大家介绍Django框架中的对象列表视图使用示例,包括了Django框架中的对象列表视图使用示例的使用技巧和注意事项,需要的朋友参考一下 direct_to_template 毫无疑问是非常有用的,但Django通用视图最有用的地方是呈现数据库中的数据。 因为这个应用实在太普遍了,Django带有很多内建的通用视图来帮助你很容易 地生成对象的列表和明细视图。 让我们先看看其中的一个通用视图:
Django 中的视图是 MTV 架构模式中的 V 层,主要处理客户端的请求并生成响应数据返回。它其实类似于 MVC 架构模式中的 C 层,用于处理项目的业务逻辑部分。Django 的视图函数就是 Django 项目中专门处理对应 path 的 python 函数,这也是整个项目开发中最核心的业务处理部分。当然,在 Django 中处理 path 路径的不只有视图函数(FBV),还有视图类(CBV
整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI。 图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类。
我们已经完成了MVC中的C层,还有M和V没有做呢。这一小节来对视图进行设计,从后台到前台的渲染是这样的 后台给定一个视图位置,输出到前端JSP或者其他模板引擎上,做一个非常简单的接口: /** * 视图渲染接口 * @author biezhi * */ public interface Render { /** * 渲染到视图 * @param view