Django之view

对于一个web程序而言,接收和处理用户的请求并返回响应是一个最基本的、也是最重要的功能。

Django为这个功能取了一个好听的名字——“视图”。

而具体的代码实现往往是通过一个个函数,Django中也叫做视图函数

URL调度器

Django对于URL的设计都放在一个叫做URLconf的模块中(urls.py)。

在该模块中,对URL pattern和视图函数进行了映射。

处理一个请求:

1.Django确定所使用的根URLconf模块,通常就是settings中的ROOT_URLCONF(字符串)这个变量。

如果HTTPRequest有一个urlconf属性,则使用该属性设置的值覆盖ROOT_URLCONF的值。

2.在模块中查询urlpatterns变量,他是一个包含django.conf.urls.url()实例的列表。

url(regex, view, kwargs=None, name=None)
:param str|ugettext_lazy()  regex: 表示一个正则表达式,通常使用原始字符串(r‘‘)。
注意:\d是个例外,r‘\d‘表示十进制整数而不是字符串‘\d‘。
:param func view: 视图函数、as_view()或者 include()。
:param dict kwargs: 用来向视图函数传递额外的参数。
:param str name: urlpattern的别名。

3.Django依此遍历urlpatterns,直到第一次匹配request.path

4.Django导入匹配到的视图函数并执行。传递给函数的参数有:

  • HTTPRequest的实例
  • 如果匹配的正则返回命名组,则该命名组会以关键字参数(key=‘value‘)的方式传给函数。如果kwargs中有同名的键,则该命名组的值会被覆盖。

5.如果匹配不到或者中间出现异常,则会调用相应的异常处理函数。详情参见Error handling

 

时间: 2024-11-08 14:19:06

Django之view的相关文章

Django的View(视图)和路由系统

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

Django之View(视图)

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

Django - - 基础 - - Django的View(视图)

目录 Django的View(视图) 一个简单的视图 CBV和FBV 给视图加装饰器 Request对象和Response对象 request对象 Response对象 JsonResponse对象 Django shortcut functions 1, Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. 无论视图本

Django的View(视图)

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

Django 的View(视图)系统

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

django generic view - ListView

ListView (带分页) 1.带分页效果的基础模板 1) view from django.views.generic.list import ListView from employ.models import Company class CompanyListView(ListView): model = Company context_object_name = "companies" template_name = 'company/company_list.html' p

Python自动化运维:Django之View视图和Template

views详解 http请求中产生两个核心对象: http请求:HttpRequest对象 http响应:HttpResponse对象(1) HttpRequest对象当请求一个页面时,Django 创建一个 HttpRequest对象包含原数据的请求.然后 Django 加载适当的视图,通过 HttpRequest作为视图函数的第一个参数.每个视图负责返回一个HttpResponse目标. path:       请求页面的全路径,不包括域名 method:     请求中使用的HTTP方法的

Django的View(视图)

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

django class-based view 考古

django 中的view中进化史: 1.在"天地初开"的时候django中的view是通过函数来定义的.函数接收一个request并以一个response作为返回: 对于这个request是通过post.get.head还是别的什么方式来到服务器端的.要在函数中进行测试,然后就可以 针对不同的请求进行不同的处理了; 一个典型的通过函数定义的View看起来像下面的样子 def MethodTest(request,*args,**kwargs): if request.method==