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,就会当什么也没有发生一样。

最新文章

  1. Http压测工具wrk使用指南
  2. 设计模式02迭代器(java)
  3. mysql 查询制定日期数据
  4. xampp下创建多个虚拟网站目录
  5. Redis在windows下安装和PHP中使用
  6. phpMailer在thinkPHP框架中邮件发送
  7. C++学习笔记一 —— 两个类文件互相引用的处理情况
  8. celery简单应用
  9. ios9 之后,Xcode7不推荐使用UIAlertView,改用UIAlertController+UIAlertAction(按钮)
  10. 常用的Python字符串常量
  11. C笔记01:关于printf函数输出先后顺序的讲解
  12. JAVA-位运算符
  13. js如何判断是手机端还是PC端访问
  14. 跟我学android-使用Eclipse开发第一个Android应用(三)
  15. linux 信号signal和sigaction理解
  16. 转:jmeter性能测试---登录百度进行搜索
  17. Java线程:锁
  18. WIN10 拨号连接下 如何开启移动热点
  19. 第二章 python变量及文件
  20. ubuntu里面搭建虚拟环境过程中遇到的问题以及解决方法。

热门文章

  1. java 基础 --- 动态代理和静态代理
  2. 给Solr配置中文分词器
  3. spring cloud 注册、发现、消费、负载均衡
  4. csu 1356 Catch bfs(vector)
  5. data-id 和 id 的区别
  6. String对象的match方法
  7. 支持n多视频网站的下载,推荐 you-get
  8. 如何让转换的视频支持HTML5在线播放
  9. 磁贴界面颜色 Metro UI Colors
  10. Android的事件分发(dispatchTouchEvent),拦截(onInterceptTouchEvent)与处理(onTouchEvent)