Django View视图

视图

一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片。

无论视图本身包含什么逻辑,都要返回响应。大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为views.py的文件中。

  • Django使用请求Request和响应Response来给整个系统传递状态
  • 当用户请求一个页面时,Django创建一个包含元数据和请求内容的HttpRequest对象。然后Django加载适当的视图,HttpRequest对象作为视图函数的第一个参数,每个视图负责返回一个HttpResponse对象。
from django.http import HttpResponse

def show(req):
    name = ‘Jerry‘
    content = ‘<h1>hello %s!</h1>‘ % name
    return HttpResponse(content)

首先从 django.http模块导入了HttpResponse类。然后定义了show函数。它就是视图函数;每个视图函数的第一个参数都为request,其实是一个HttpRequest对象。视图函数中封装了一个HTML格式的字符串,传入HttpResponse()后,实例化一个HttpResponse对象并返回。

当浏览器向服务端请求一个页面时,Django创建一个HttpRequest对象,该对象包含关于请求的元数据。然后,Django加载相应的视图,将这个HttpRequest对象作为第一个参数传递给视图函数。

render()

结合一个给定的模板和一个给定的上下文字典, 并返回一个渲染后的HttpResponse对象。

def render(request, template_name, context=None, content_type=None, status=None, using=None):
    """
    Return a HttpResponse whose content is filled with the result of calling
    django.template.loader.render_to_string() with the passed arguments.
    """
    content = loader.render_to_string(template_name, context, request, using=using)
    return HttpResponse(content, content_type, status)

必需参数:

  • request:用于生成此响应的HttpRequest对象;
  • template_name:要使用的模板的完整名称;

可选参数:

  • context:添加到模板上下文的一个字典,默认是一个空字典, 通过它可以向模板传入自定义参数,视图将在渲染模板之前调用它;
  • content_type:生成的文档要使用的MIME类型.,默认为DEFAULT_CONTENT_TYPE设置的值"text/html";
  • status:响应的状态码. 默认为200;
  • useing:用于加载模板的模板引擎的名称。

示例:

from django.shortcuts import render

def my_view(request):
    active = True
    return render(request, ‘index.html‘, {‘name‘: active}, content_type=‘application/xhtml+xml‘)

redirect()

默认返回一个临时的重定向,传递permanent=True可以返回一个永久的重定向。临时重定向(响应状态码: 302)和永久重定向(响应状态码: 301)对普通用户来说是没什么区别的, 它主要面向的是搜索引擎的机器人。

def redirect(to, *args, permanent=False, **kwargs):
    """
    Return an HttpResponseRedirect to the appropriate URL for the arguments
    passed.
    """
    redirect_class = HttpResponsePermanentRedirect if permanent else HttpResponseRedirect
    return redirect_class(resolve_url(to, *args, **kwargs))

参数可以是:

  • 一个模型: 将调用模型的get_absolute_url()函数
  • 一个视图, 可以带有函数: 可以使用urlresolvers.reverse来反向解析名称
  • 一个绝对的或相对的URL, 将原封不动的作为重定向的位置

示例:

from django.shortcuts import redirect

def my_view(request):
    return redirect(‘/some/url/‘)

def my_view(request):
    return redirect(‘https://example.com/‘)

原文地址:https://www.cnblogs.com/houyongchong/p/view.html

时间: 2024-08-04 15:58:00

Django View视图的相关文章

Django View(视图系统)

Django View 官方文档 一个视图函数(类),简称视图,是一个简单的 Python 函数(类),它接受Web请求并且返回Web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. 无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当前项目目录下面.为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为 views.py 的文件中. 一.FBV和CBV 1.1 FBV FBV(f

Django之视图(view)

Django之视图(view) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应.简单理解就是接受请求返回响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片等等.无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当前项目目录下面.为了形成一致的标准,将视图放置在项目(project)或应用程序(app)目录中的名为views.py的文件中. 先给个例子,体会一下: from

Django高级视图和URL配置

URLconf 技巧 URLconf没什么特别的,就象 Django中其它东西一样,它们只是 Python代码.你可以在几方面从中得到好处,正如下面所描述的. 流线型化(Streamlining)函数导入 看下这个 URLconf,它是建立在第三章的例子上: from django.conf.urls.defaults import * from mysite.views import current_datetime, hours_ahead, hours_behind, now_in_chi

django view 装饰器

Django提供了几个可以应用于视图以支持各种HTTP特性的装饰器 Allowed HTTP django.views.decorators.http里的装饰器可以根据请求方法限制对视图的访问. require_http_methods 接收特定的HTPP 请求方法 from django.views.decorators.http import require_http_methods @require_http_methods(["GET", "POST"])

Django3_Url控制系统和View视图

一.URL控制系统1.简单说明URL配置的本质是通过URL与对应的View视图形成映射,我们在调用URL时会自动找到对应的view进行逻辑处理,及通过URL告诉Django调用那一段View代码.2.格式urlpatterns = [url('正则表达式URL1',views视图函数,[参数],[别名]),url('正则表达式URL2',views视图函数,[参数],[别名]),]参数说明:?一个正则表达式字符串,Django会从上往下一次匹配url,匹配有值则停止往下查找:?一个可调用的视图函

Django之视图函数总结

Django之视图函数总结 HttpRequest与HttpResponse http请求中产生两个核心对象: HttpRequest对象:用户请求相关的所有信息(对象) HttpResponse对象:响应字符串 HttpRequest对象的属性和方法: request.path # 获取访问文件路径 request.method #获取请求中使用的HTTP方式(POST/GET) request.body #含所有请求体信息 是bytes类型 request.GET #GET请求的数据(类字典

view 视图函数

一 Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. 无论视图本身包含什么逻辑,都要返回响应.代码写在哪里也无所谓,只要它在你当前项目目录下面.除此之外没有更多的要求了——可以说“没有什么神奇的地方”.为了将代码放在某处,大家约定成俗将视图放置在项目(project)或应用程序(app)目录中的名为views.py的

Android 自定义View视图

创建全新的视图将满足我们独特的UI需求. 本文介绍在指南针开发中会用到的罗盘的界面UI,通过继承View类实现的自定义视图,以此来深刻了解自定义视图. 实现效果图: 源代码: 布局文件activity_main(其中CompassView继承View类): <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.

DNS主从服务,子域授权,view视图,日志系统,压力测试rsync配置

DNS主从服务,子域授权,view视图,日志系统,压力测试 DNS性能测试工具queryperfDNS查询过程: DNS主从建立: 环境: 主服务器:10.140.165.93 从服务器:10.140.165.169 关闭防火墙,关闭selinux. 主服务器建立: [[email protected] ~]# yum -y install bind-util bind #安装bind服务 [[email protected] ~]# vim /etc/named.conf #编辑主配置文件 o