Django视图(一)

一、 概述

作用:视图接受web请求,并相应请求

本质:视图是自定义的一个python中的函数

响应内容:正常视图,重定向视图,错误视图(404,500,400)

响应过程:

二、 url配置

配置流程

一般在创建项目时Django会默认将根级配置文件配置好。配置位置在工程文件夹下的settings.py文件里ROOT_URLCONF = '工程名.urls'
第二级url配置在工程文件夹下的urls.py文件里的urlpatterns列表里。eg:urlpatterns = [
    path('admin/', admin.site.urls),
   
path('应用名/',include('应用名.urls'))
]
第三级url配置在应用文件夹下的urls.py文件里。eg: 
from django.urls import path
from 应用名 import views
urlpatterns = [
   
path('news/',views.news),
]
访问该url时应输入:127.0.0.1:8000/应用名/news
在需要正则表达式时需注意如果想要从url中获取一个值时,需要对正则加小括号;匹配正则前方不用加反斜杠;正则前需要加‘r’表示字符串。

url的反向解析

三、 视图函数

1、       概述

其本质是一个函数,一般在views.py文件中定义。用于将url和模版文件还有返回浏览器的数据联系在一起。

2、       错误视图

404视图:

只需要在template目录创建404.html并将settings.py文件中的DEBUG改为False,ALLOWED_HOSTS = [*]。在404.html文件里写{{request_Path}}可以直接在前端显示用户访问的url。

四、 HttpRequest对象

1、       概述

服务器接收http请求后,会根据报文创建HttpRequest对象;视图函数的第一个参数就是HttpRequest对象;它是Django创建的,在调用视图时传递给视图。

2、       属性

path:请求的完整路径(不包括域名和端口)

method:表示请求的方法,GET,POST

encoding:表示浏览器提交的数据的编码方式(一般为utf-8)

GET:类似字典的对象,包含了get请求的所有参数

POST:类似字典的对象,包含了post请求的所有参数

FILES:类似字典的对象,包含了所有上传的文件

cookies:字典类型,包含了所有cookie

session:字典类型,表示当前会话

3、       方法

is_ajax:如果是通过XMLHttpRequest发起的,返回Ture

4、       QuertDict对象

request对象中的GET、POST都属于该对象。

get():根据键索取值,只能取一个值

getlist():将键的值以列表的形式返回,可以取多个值。

五、 HttpResponse对象

1、       概述:

用于给浏览器返回数据。与HttpRequest对象的区别是,HttpResponse对象是程序员创建的。

2、       用法

分为两种,一种是不调用模版,直接返回数据;另一种是,调用模版,使用render方法。语法是render(request,templateName,[context])。request:请求对象,templateName:模版路径,[context]:传给模版的数据。
eg:
def news(request):
    s = 'you'
    return render(request,"news.html",{"obj":s})

3、       属性

content:表示返回的内容模型

charset:编码格式

status_code:响应状态码,200,400,500,404

content-type:指定输出的MIME类型

4、       方法

init:使用页面内容实例化HttpReponse对象

write(content):以文件的形式写入

flush:以文件的形式输出,刷新缓存区

set_cookie(key,value=’’,max_age=None,exprise=None)

delete_cookie(key):删除cookie。如果删除一个不存在的cookie,就会当什么也没有发生一样。

Django视图(一)的更多相关文章

  1. [diango]理解django视图工作原理

    前言:正确理解django视图view,模型model,模板的概念及其之间的关联关系,才能快速学习并上手使用django制作网页 本文主要讲解自己在学习django后对视图view的理解 在进入正文之 ...

  2. Django 2.0 学习(03):Django视图和URL(下)

    接上篇博文,继续分析Django基本流程. 编写第一个(view)视图函数 1.打开文件polls/views.py,输入下面的Python代码: from django.http import Ht ...

  3. 如何在django视图中使用asyncio(协程)和ThreadPoolExecutor(多线程)

    Django视图函数执行,不在主线程中,直接 loop = asyncio.new_event_loop() # 更不能loop = asyncio.get_event_loop() 会触发 Runt ...

  4. Django 视图系统

    Django 视图系统 概念 一个视图函数,简称视图,是一个简单的Python函数,用于接受Web请求并返回Web响应. 通常将视图函数写在project或app目录中的名为views.py文件中 简 ...

  5. 令Django 视图有默认 login_required

    方法一 from django.template import RequestContext from django.shortcuts import render_to_response from ...

  6. Django视图层之路由配置系统(urls)

    视图层之路由配置系统(urls) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个U ...

  7. 1.2、Django 视图与网址__进阶

    Django 视图与网址进阶 1.1.简单使用: 把我们新定义的app加到settings.py中的INSTALL_APPS中 修改 HelloDjango/HelloDjango/settings. ...

  8. django视图缓存的实现

    django视图缓存的实现 1,安装 pip install django-redis setting.py CACHES = { "default":{ "BACKEN ...

  9. Django 2.0 学习(07):Django 视图(进阶-续)

    接Django 2.0 学习(06):Django 视图(进阶),我们将聚焦在使用简单的表单进行处理和精简代码. 编写简单表单 我们将用下面的代码,来替换之前的detail模板("polls ...

随机推荐

  1. angularjs 过滤掉textarea输入内容中夹带的特殊字符

    <body ng-app="app"> <div ng-controller="main"> <textarea ng-model ...

  2. .Net平台技术介绍、C#语言

    转载别人的  只是用做学习 一.什么是.Net平台? .Net平台是微软搭建的技术平台,技术人员在此平台上进行应用的搭建与开发.它提供了运行所必须的环境.NET Framework类库以及CLR(公共 ...

  3. C# 工具类之数据库链接

     一.SQL Server 相关 /// <summary> /// 数据库的通用访问代码 /// 此类为抽象类, /// 不允许实例化,在应用时直接调用即可 /// </summa ...

  4. static关键字作用

    之前讲到final关键字的作用是每次面试的时候我必问求职者的两个问题之一,另外一个问题就是文本会写到的static.final和static一样,都是一个小问题可以看到一个人的基础是否扎实以及平时是否 ...

  5. 使用dom4j写xml文件——源码

    1 dom4j下载与配置 1.1 dom4j下载 请移步下载链接 1.2 maven依赖 <dependency> <groupId>org.dom4j</groupId ...

  6. Java 类 ThreadLocal 本地线程变量

    前言:工作中将要使用ThreadLocal,先学习总结一波.有不对的地方欢迎评论指出. 定义 ThreadLocal并不是一个Thread,而是Thread的局部变量.这些变量不同于它们的普通对应物, ...

  7. Dubbo 体验(一)

    最近新加入一个项目组,所使用的是Dubbo,采用的架构是分布式架构,数据库采用MySQL分片.之前也接触过一下,但为了能更好融入团队,所以找Dubbo官网看文档. 才发现Dubbo的官网已搬去apac ...

  8. float失效的情况

    前言:在最近的笔试中,两次碰到类似的问题,什么情况下float会失效?我目前知道的有2种: 1)display:none: 2)position:absolute.fixed. (1)display: ...

  9. Angular入门教程二

    4 功能介绍 4.1数据绑定 AngularJS的双向数据绑定,意味着你可以在Mode(JS)中改变数据,而这些变动立刻就会自动出现在View上,反之亦然.即:一方面可以做到model变化驱动了DOM ...

  10. 状态开关(ToggleButton)

    状态开关(ToggleButton): 常用属性:isChecked(是否被选中,如true) 监听:1.监听方法:setOnCheckedChangeListener 2.监听器:CompoundB ...