视图

概述

作用:视图接受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 视图笔记的更多相关文章

  1. Django学习笔记(五)—— 表单

    疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path         ...

  2. Django学习笔记(三)—— 型号 model

    疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...

  3. Django入门笔记

    Django入门笔记 **文档包含Django安装包.学习的笔记.代码等 安装 Django参考附件,只需要把附件拷贝到你需要的目录就行.Django是1.8.16版本 Python:在附件中,其中有 ...

  4. Django 学习笔记(二)

    Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...

  5. Django学习笔记(9)—— 开发用户注册与登录系统

    一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...

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

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

  7. Django学习笔记---第一天

    Django学习笔记 1.Django的安装 //如果不指定版本号,默认安装最新版 pip3 install django==1.11.8 关于Django的版本和python的版本依赖关系,请看下图 ...

  8. Django学习笔记(13)——Django的用户认证(Auth)组件,视图层和QuerySet API

    用户认证组件的学习 用户认证是通过取表单数据根数据库对应表存储的值做比对,比对成功就返回一个页面,不成功就重定向到登录页面.我们自己写的话当然也是可以的,只不过多写了几个视图,冗余代码多,当然我们也可 ...

  9. Python框架之Django学习笔记(十七)

    Django框架之表单(续二) 今天的这篇博客将是Django学习笔记博客的最后一篇,基本每周最少一篇的Django框架学习,坚持到今天也实属不易,当然了,这个框架的学习仅仅是Django框架的基础部 ...

随机推荐

  1. spring入门-整合junit和web

    整合Junit 导入jar包 基本 :4+1 测试:spring-test-5.1.3.RELEASE.jar 让Junit通知spring加载配置文件 让spring容器自动进行注入 1234567 ...

  2. 阿里为何要用独立APP挖微信微商墙角?

    ​ 微商,这个被很多人看来是逃离马云魔咒,和淘宝抗衡的电商模式,自诞生到狂飙就伴随着种种争议.由于传播效率极强,在很长时间里也一直是不少人口中津津乐道的神话故事和救市良方.以至于,淘宝推出各种手段封杀 ...

  3. hadoop地址配置、内存配置、守护进程设置、环境设置

    1.1  hadoop配置 hadoop配置文件在安装包的etc/hadoop目录下,但是为了方便升级,配置不被覆盖一般放在其他地方,并用环境变量HADOOP_CONF_DIR指定目录. 1.1.1  ...

  4. Java框架之SpringBoot-Web构建-yml-模块-注解

    SpringBoot Spring Boot是一站式整合所有应用框架的框架,简化Spring应用开发,约定大于配置,去繁从简,开箱即用,准生产环境的运行时应用监控框架 快速构建 SpringBoot ...

  5. ZOJ 4109 Welcome Party

    题目链接:(https://zoj.pintia.cn/problem-sets/91827364500/problems/91827370504)(https://vjudge.net/proble ...

  6. 7-30 jmu-python-凯撒密码加密算法 (10 分)

    编写一个凯撒密码加密程序,接收用户输入的文本和密钥k,对明文中的字母a-z和字母A-Z替换为其后第k个字母. 输入格式: 接收两行输入,第一行为待加密的明文,第二行为密钥k. 输出格式: 输出加密后的 ...

  7. webpack基础配置(一)

    第一次写博客,有点小小的兴奋,也有一点点的慌张--- 我是一个小白,仅记录自己的学习过程,内容仅供参考,如果有问题的地方,还希望各位大牛多多指教,我菜,菜是原罪,但是我可以学-- 1.最基本的:如何使 ...

  8. Linux学习资料地址汇总-不定时更(一)

    https://linux.linuxidc.com/ 用户名和密码都是www.linuxidc.com

  9. 关于Spring和SpringMVC的总结

    1.Spring中AOP的应用场景.AOP原理.好处? 答:AOP:Aspect Oriented Programming面向切面编程:用来封装横切关注点,具体可以在下面场景中使用: Authenti ...

  10. npm install、npm install --save与npm install --save-dev、npm install -g区别

    npm install X: 会把X包安装到node_modules目录中 不会修改package.json 之后运行npm install命令时,不会自动安装X npm install X –sav ...