视图

概述

作用:视图接受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

最新文章

  1. 【codevs】刷题记录→_→(推荐看!)
  2. 修改ubuntu DNS的步骤(图文)
  3. jQuery---EasyUI小案列
  4. MYSQL 分组排名
  5. IOS键盘收起
  6. 用js判断一个复选框是否被选中
  7. I2C转UART
  8. Servlet学习--练习示例总结
  9. 【桌面虚拟化】之三 Persistent vs NonP
  10. iPhone5C三大看点:性能不输iPhone5 或售3399元
  11. ListNode线性表
  12. LeetCode中的最大子串和问题(Maximum Subarray)
  13. _pvp
  14. 大三上学期安卓一边学一边开始做一个自己觉得可以的项目 广商小助手App 加油
  15. MyBatis基础入门《六》Like模糊查询
  16. Node学习笔记:建立TCP服务器和客户端之间的通信
  17. 从PHP5.0到PHP7.1的性能全评测
  18. FINAL视频预发布
  19. Android下基于PCM的音频渲染
  20. cheerio ==&gt; node中的jquery

热门文章

  1. java里面的设计模式
  2. Pandorabox固件路由器上申请Let&#39;s Encrypt证书,为内网里的多个web服务提供SSL支持
  3. Java设计模式之结构模式
  4. 对于页面适配,你应该使用px还是rem
  5. DOM3中的自定义事件
  6. GZOJ 1361. 国王游戏【NOIP2012提高组DAY1】
  7. JZOJ 3453.【NOIP2013中秋节模拟】连通块(connect)
  8. django中ORM中锁和事务
  9. vue基础----自定义组件directive ,bind,update,insert
  10. 分布式框架Celery(转)