Django 视图笔记
视图
概述
作用:视图接受web请求,并响应
本质:python中的一个函数
响应:
网页;重定向:错误视图(404、500)
json数据
url配置
配置流程
1:指定根基url配置文件
settings.py中的
ROOT_URLCONF = 'Django项目基本流程.urls'
默认实现
2:urlpatterns
一个url实例的列表:url对象
包括:正则表达式,视图名称,名称
3:url匹配正则的注意事项
·如果想从url中获取一个值,需要对正则加小括号
·匹配正则前面不用加/
·正则前加r表示不转义
引入其他url配置
在应用中添加urls.py文件,定义本应用的url配置,在工程urls.py文件中使用include()方法
代码
from django.contrib import admin
from django.urls import path,include
from app1 import views,urls
import app1
urlpatterns = [path('admin/', admin.site.urls),
path('', include(app1.urls)),
]
#app中
from django.conf.urls import url
from . import views
from django.contrib import admin
from django.urls import path,include,re_path
urlpatterns = [
path('', views.index),
re_path('^grades/$', views.Grades),
]
url反向解析
概述:如果在视图,模板中使用了硬编码链接,在url配置改变时,动态生成链接的地址
解决:在使用链接时,通过url配置的名称,动态生成url地址
作用:使用url模板
视图函数
1:定义视图
本质:函数
视图参数:
- 一个HttpRequest的实例
- 通过正则表达式获取的参数
- 位置一般在views.py下定义
2:错误视图
*500视图:在视图 代码中出现错误(服务器)
*400:错误出现在客户的操作,在templates目录下中定义404.html
request__path:导致你错误的网址
HttpRequest对象
概述
服务器接收请求后,会根据报文产生HttpRequest对象,视图的第一个参数就是HttpRequest对象,Django创建的,之后调用视图时传递给视图
属性
*path:请求的完整路径,不包括域名与端口
*method:表示请求的方式,常用的有:get,post
*encoding:编码方式,一般是UTF-8
*GET:类似于字典的对象,包含了get请求的所有参数
*POST:类似于字典的对象,包含了post请求的所有参数 (浏览器给服务器传递的数据)
*files:类似于字典的对象,包含了所有上传的文件
*cookies:字典,包含所有的cookie
*session:类似于字典的对象,表示当前会话
方法
is_ajax()
如果是XMLHttpRequest发起的,返回TRUE
QueryDic对象
request对象中的get,post都属于QueryDic对象
方法:get() 根据键获取值,只能获取一个值
例:http://www.rmxob.cn/abc/a=1&b=2&c=3
getlist()根据键获取一个列表
例:http://www.rmxob.cn/abc/a=1&a=2&c=3
GET属性
获取浏览器传递给服务器的数据
获取get传递来的数据
#urls
re_path('^get1$', views.get1),
#views
def get1(request):
a=request.GET.get('a')
b = request.GET.get('b')
return HttpResponse(a+b)
测试网址:
http://127.0.0.1:8000/get1?a=1&b=2
结果:12
getlist测试
#urls
re_path('^get2$', views.get2),
#views
def get2(request):
a1=request.GET.get('a')
b = request.GET.get('b')
return HttpResponse(a[0]+a[1]+b)
测试网址:
http://127.0.0.1:8000/get1?a=1&a=2&b=2
结果:
123
POST属性
先复习一下form标签
action URL 规定当提交表单时向何处发送表单数据。
method get,post 规定用于发送 form-data 的 HTTP 方法。
例:
<form action="regist" method="post">
姓名:<input type="text" name="name">
<br>
性别:<input type="radio" name="gender" value="0">男
<input type="radio" name="gender" value="1">女
<br>
<input type="submit" value="注册">
</form>
在此页面可进行提交后进入regist页面
事先要注释掉csrf
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
测试:
同上的html代码
def regist(request):
name=request.POST.get("name")
return HttpResponse(name)
在网址提交的表单数据便接受到了
http://127.0.0.1:8000/showregist
Django 视图笔记的更多相关文章
- Django学习笔记(五)—— 表单
疯狂的暑假学习之 Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path ...
- Django学习笔记(三)—— 型号 model
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...
- Django入门笔记
Django入门笔记 **文档包含Django安装包.学习的笔记.代码等 安装 Django参考附件,只需要把附件拷贝到你需要的目录就行.Django是1.8.16版本 Python:在附件中,其中有 ...
- Django 学习笔记(二)
Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...
- Django学习笔记(9)—— 开发用户注册与登录系统
一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...
- 1.2、Django 视图与网址__进阶
Django 视图与网址进阶 1.1.简单使用: 把我们新定义的app加到settings.py中的INSTALL_APPS中 修改 HelloDjango/HelloDjango/settings. ...
- Django学习笔记---第一天
Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...
- Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API
用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可 ...
- Python框架之Django学习笔记(十七)
Django框架之表单(续二) 今天的这篇博客将是Django学习笔记博客的最后一篇,基本每周最少一篇的Django框架学习,坚持到今天也实属不易,当然了,这个框架的学习仅仅是Django框架的基础部 ...
随机推荐
- Flume 实战练习
前期准备 了解Flume 架构及核心组件 Flume 架构及核心组件 Source : 收集(指定数据源从哪里获取) Channel : 聚集 Sink : 输出(把数据写到哪里去) 学习使用 Flu ...
- 京东Y事业部打造一体化质量管理平台
互联网企业质量管理的困惑 作为互联网时代的互联网企业,我们的研发模式和传统模式相比,最显著的不同在于发布节奏加快了,这个加快不是快了10%,20%,50%,而是加快了几倍,甚至几十倍,上百倍.面对加快 ...
- Mac 下配置 adb 环境
使用 adb 命令可以很直接的观察你的应用 第一步 打开终端,敲入命令:sudo vi .bash_profile(如果有密码就为本机登录密码, 如果没有这个文件就会创建一个新的). 第二步 在文件中 ...
- 对话|首席研究员童欣:从长远看,AR的应用范围远比VR广泛
童欣博士现任微软亚洲研究院网络图形组首席研究员.1993年毕业于浙江大学计算机系,获工学学士学位:1996年获浙江大学计算机系硕士学位:1999年获清华大学计算机系博士学位,同年加入微软亚洲研究院. ...
- python 初学者
明确学习目标,不急于求成 当下是一个喧嚣.浮躁的时代.我们总是被生活中大量涌现的热点所吸引,几乎没有深度阅读和思考的时间和机会.我始终认为,学习是需要沉下心来慢慢钻研的,是长 期的:同时,学习不应该被 ...
- 使用HtmlAgilityPack和ScrapySharp抓取网页数据遇到的几个问题解决方法——格式编码问题
需要用到对应市区县街道居委会的区域编码,于是找到统计局的网页,对这些数据进行抓取,用到了HtmlAgilityPack和ScrapySharp,由于也是第一次从网页抓取数据,所以对于HtmlAgili ...
- tomcat启动出现问题,有待解决
三月 15, 2017 2:23:41 下午 org.apache.tomcat.util.digester.SetPropertiesRule begin警告: [SetPropertiesRule ...
- 20170809-从URL输入到页面展现
从URL输入到页面展现 1.输入URL URL:统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示. URL包含以下几部分:协议.服务器名称(或IP地址).路径.参数和查询. ...
- Skeleton Screen加载占位图(内容出现前显示灰色占位图)的分析与实现
今天有几个好友问了这个叫加载占位图的实现方法,我还在此问题下做了个回答.由于国内对这个的名词是各有各的叫法,所以这里直接用加载占位图来解释.相信很多人都看到过图中这样的加载方式: 这个图是一个国内知名 ...
- 【MySQL】:事务四大特性与隔离级别
目录 一.事务的概念 二.事务的四大特性 1.原子性 2.一致性 3.隔离性 4.持续性 三.事务语句 1.开启事务:start transaction 2.事务回滚:rollback 指定回滚点 3 ...