Django框架之视图

Django框架之视图层

什么是视图函数

视图函数,属于Django的视图层,默认定义在views.py文件中,是用来处理web请求信息以及返回响应信息的函数。并且这里的视图函数并不仅仅指代函数,也包括类。

请求对象

Django将http协议请求报文中的请求行、首部信息、内容主体封装到了HttpRequest对象中。将HttpRequest对象当做参数传给视图函数中去,在视图函数中,通过访问该对象的属性便可以提取http协议的请求数据

常用属性
  • method

    获取请求方式

  • GET

    获取GET请求携带的数据,将数据封装成QueryDict对象,通过get(key)方法获取指定值,如果该值有多个,使用getlist

  • POST

    获取POST请求携带的数据,将数据封装成QueryDict对象,通过get(key)方法获取指定值,如果该值有多个,使用getlist

  • FILES

    获取表单提交上来的文件

  • path

    获取url地址的路径部分

  • get_full_path()

    获取完整的url地址

  • COOKIES

    获取所有的cookie

  • session

    一个既可读又可写的类似于字典的对象,表示当前的会话

  • is_ajax()

    判断是否是通过ajax发送的请求

响应对象

  • HttpResponse

    向前端页面返回一个字符串

  • render
    render(request, template_name, context)
    参数:
        1、request:必须,用于生成响应的请求对象,固定必须传入的第一个参数
    
        2、template_name:必须,要使用的模板的完整名称,必须传入,render默认会去templates目录下查找模板文件
    
        3、context:可选,可以传入一个字典用来替换模块文件中的变量
  • redirect

    返回一个重定向地址,可以使接口也可以是外部url

  • JsonResponse

    返回一个json字符串

    # 方式一:
    import json
    def my_view(request):
        data=['gredae','dijia']
        return HttpResponse(json.dumps(data) )
    # 方式二:
    from django.http import JsonResponse
    def my_view(request):
        data=['gredae','dijia']
        return JsonResponse(data,safe=False)
        #默认safe=True代表只能序列化字典对象,safe=False代表可以序列化字典以外的对象

FBV和CBV

之前我们讲过视图函数不仅仅是函数,还可以是类。

基于函数的视图:Function base view

urls.py

from django.urls import url
from app01 import views

urlpatterns = [
    url(r'^login/',views.login), # 必须调用类下的方法as_view
]

views.py

from django.shortcuts import render

def login(request):
    return render(request,'login.html')
基于类的视图:Class base view

urls.py

from django.urls import url
from app01 import views

urlpatterns = [
    url(r'^login/',views.LoginView.as_view()), # 必须调用类下的方法as_view
]

views.py

from django.shortcuts import render
from django.views import View

class LoginView(View):
    # 处理GET请求
    def get(self,request):
        return render(request,'login.html')
    # 处理POST请求
    def post(self,request):
        return render(request,'login.html')

原文地址:https://www.cnblogs.com/Gredae/p/11756195.html

时间: 2024-10-29 04:25:29

Django框架之视图的相关文章

django框架之视图系统和路由系统

内容回顾: 1. tags         1. for循环            {% for name in name_list %}                {{ name }}            {% endfor %}                        {% for name in name_list %}                {{ name }}            {% empty %}                空空如也          

Django框架之---视图

视图 视图的功能 视图负责接受Web请求HttpRequest,进行逻辑处理,返回Web响应HttpResponse给请求者. 使用视图的过程 视图就是一个python函数,被定义在"应用/views.py"文件中. 使用视图时需要进行两方面操作,两个操作不分先后. 1)在"应用/views.py"中定义视图. 在booktest/views.py中定义视图函数index: def index(request): return HttpResponse("

Django框架1——视图和URL配置

三个命令 1.创建一个django项目 在cmd中:django-admin.py startproject project_name D:\python\django_site>django-admin startproject first_site 2.创建应用 python manage.py startapp app_name D:\python\django_site\first_site>python manage.py startapp app001 3.运行django项目 p

Django框架之类视图

所谓类视图就是用类定义的视图,其主要支持客户端在用不同的请求方式发起的HTTP请求. 首先,我们需要明确一下类视图的好处: 1.代码可读向高: 2.相对于视图函数具有更高的代码复用性: 3.便于维护. 类视图的定义格式如下: # 1. 导入视图模块from django.views.generic import View class ObjectView(View): """2. 定义一个类视图""" # 3.编写视图函数 def get(sel

Django 框架之视图函数(Views)

http请求中产生的两个核心对象: http请求: HttpRequest对象 http响应: HttpResponse对象 所在位置: django.http HttpRequest 对象的属性和方法: path: 请求页面的全路径,不包括域名; method: 请求中使用的HTTP方法的字符串表示(全大写表示,例如:GET,POST); GET: 包含所有HTTP GET参数的类字典对象; POST: 包含所有HTTP POST参数的类字典对象; COOKIES:包含所有cookies的标志

Django框架学习----视图与模板(最新文章实现)

剩下的就是我们的最后一个功能了,最新文章的跳转 我们先在view.py里面定义一个接受最新五篇文章的变量 top5_article_list,并映射到index页面里面 最后只需要在index.html文件里面吧之前的所有文章的变量换成我们刚刚定义的top5_article_list就可以了 就此django入门结束了 原文地址:https://www.cnblogs.com/humiao-0626/p/12662994.html

Django框架学习----视图与模板(详情页的上下篇文章跳转跳转)

我们实现首页到详情页的跳转之后,接下来就是实现详情的上下篇文章的跳转 第一步:挑选按钮 把选中的按钮复制到我们的detail页面里面,并用一个div包含起来,如下图: 在上图中我定义了两个变量,他现在是不存在的,我们需要在views,py里面把这两个变量赋值之后并且映射过来.如下图: 写好之后重启一下你的项目,你的详情页就拥有了上下篇文章跳转功能了 原文地址:https://www.cnblogs.com/humiao-0626/p/12662555.html

第三百零五节,Django框架,Views(视图函数),也就是逻辑处理函数里的各种方法与属性

Django框架,Views(视图函数),也就是逻辑处理函数里的各种方法与属性 Views(视图函数)逻辑处理,最终是围绕着两个对象实现的 http请求中产生两个核心对象: http请求:HttpRequest对象 http响应:HttpResponse对象 所在位置:django.http 之前我们用到的参数request就是HttpRequest     HttpRequest对象 逻辑处理函数的第一个形式参数,接收到的就是HttpRequest对象,这个对象里封装着用户的各种请求信息,通过

Django框架-Django视图(views)系统

Django的视图系统 定义:一个视图函数(或类),简称为视图,是一个简单的python函数或类,它接受web请求并且返回web响应. 响应可以是一张网页的html内容,一个重定向,一个404错误,一个xml文档,或一张图片. 无论视图本身包含什么逻辑,都要返回响应,代码写在那里都无所谓,只要它在你当前项目目录下面.为了将代码放在某处,大家预定成俗将视图放在项目project或应用程序app目录中的名为views.py的文件中. 1.每个视图函数,都使用HttpRequest对象作为第一个参数,