Django视图(一)
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视图(一)的更多相关文章
- [diango]理解django视图工作原理
前言:正确理解django视图view,模型model,模板的概念及其之间的关联关系,才能快速学习并上手使用django制作网页 本文主要讲解自己在学习django后对视图view的理解 在进入正文之 ...
- Django 2.0 学习(03):Django视图和URL(下)
接上篇博文,继续分析Django基本流程. 编写第一个(view)视图函数 1.打开文件polls/views.py,输入下面的Python代码: from django.http import Ht ...
- 如何在django视图中使用asyncio(协程)和ThreadPoolExecutor(多线程)
Django视图函数执行,不在主线程中,直接 loop = asyncio.new_event_loop() # 更不能loop = asyncio.get_event_loop() 会触发 Runt ...
- Django 视图系统
Django 视图系统 概念 一个视图函数,简称视图,是一个简单的Python函数,用于接受Web请求并返回Web响应. 通常将视图函数写在project或app目录中的名为views.py文件中 简 ...
- 令Django 视图有默认 login_required
方法一 from django.template import RequestContext from django.shortcuts import render_to_response from ...
- Django视图层之路由配置系统(urls)
视图层之路由配置系统(urls) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个U ...
- 1.2、Django 视图与网址__进阶
Django 视图与网址进阶 1.1.简单使用: 把我们新定义的app加到settings.py中的INSTALL_APPS中 修改 HelloDjango/HelloDjango/settings. ...
- django视图缓存的实现
django视图缓存的实现 1,安装 pip install django-redis setting.py CACHES = { "default":{ "BACKEN ...
- Django 2.0 学习(07):Django 视图(进阶-续)
接Django 2.0 学习(06):Django 视图(进阶),我们将聚焦在使用简单的表单进行处理和精简代码. 编写简单表单 我们将用下面的代码,来替换之前的detail模板("polls ...
随机推荐
- Form身份验证
Forms身份验证Web.config<system.web><authentication mode="Forms"> <fo ...
- Java - 复合模式优于继承
继承是实现代码重用的方法之一,但使用不当则会导致诸多问题. 继承会破坏封装性,对一个具体类进行跨包访问级别的继承很危险. 即,子类依赖父类的实现细节. 如果父类的实现细节发生变化,子类则可能遭到破坏. ...
- MVC官方教程索引
1.MVC教程首页http://www.asp.net/learn/mvc/?lang=cs 2.MVC概况2.1创建一个基于数据库的"电影"web应用http://www.asp ...
- Springboot @ResponseBody返回中文乱码
最近我在把Spring 项目改造Springboot,遇到一个问题@ResponseBody返回中文乱码,因为response返回的content-type一直是application/json;ch ...
- win下gosublime配置ctag
ctags(Generate tag files for source code)是vim下方便代码阅读的工具.尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM.并且VIM中已经默认安装 ...
- spss C# 二次开发 学习笔记(三)——Spss .Net 开发
Spss .Net 二次开发的学习过程暂停了一段时间,今天开始重启. 之前脑残的不得了,本想从网上下载一个Spss的安装包,然后安装学习.于是百度搜索Spss,在百度搜索框的列表中看到Spss17.S ...
- MyBatis缓存通俗易懂
1.1 mybatis缓存介绍 如下图,是mybatis一级缓存和二级缓存的区别图解: Mybatis一级缓存的作用域是同一个SqlSession,在同一个sqlSession中两次执行相同的 ...
- cookie、session、分页
一.cookie HTTP协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情 ...
- JavaWeb学习总结(八):HttpServletRequest对象
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- cacti 安装与 与不能显示图像故障解决方案
on debian 7&8 apt-get install snmp snmpd apt-get install cacti cacti-spine apt-get install moreu ...