46、django工程(view)
46.1、django view 视图函数说明:
1、http请求中产生两个核心对象:
(1)http请求:HttpRequest对象。
(2)http响应:HttpResponse对象。
2、views 函数是接收用户请求,处理业务逻辑的函数:
46.2、HttpRequest 对象的属性和方法:
1、path:
请求页面的全路径,不包括域名。
2、method:
请求中使用的HTTP方法的字符串表示。全大写表示。
例如:
if req.method == "GET":
do_something()
elseif req.method == "POST":
do_something_else()
3、GET:
包含所有HTTP GET参数的类字典对象。
4、POST:
包含所有HTTP POST参数的类字典对象。
服务器收到空的POST请求的情况也是可能发生的,也就是说,表单 form 通过 HTTP POST 方法提交请求,
但是表单中可能没有数据,因此不能使用 if request.POST 来判断是否使用了 HTTP POST 方法。应该使用
if request.method == "POST" 来判断。
5、COOKIES:
包含所有 cookies 的标准 Python 字典对象,keys 和 values 都是字符串。
6、FILES:
包含所有上传文件的类字典对象,FILES 中的每一个 Key 都是 <input type="file" name="" /> 标签中
name 属性的值,FILES 中的每一个 value 同时也是一个标准的 python 字典对象,包含下面三个Keys:
filename:上传文件名,用字符串表示。
content_type:上传文件的 Content Type。
content:上传文件的原始内容
7、user:
是一个 django.contrib.auth.models.User 对象,代表当前登陆的用户。如果访问用户当前没有登陆,user
将被初始化为 django.contrib.auth.models.AnonymousUser 的实例。你可以通过 user 的
is_authenticated() 方法来辨别用户是否登陆。if request.user.is_authenticated() 只有激活 Django 中的
'django.contrib.auth.middleware.AuthenticationMiddleware' 时该属性才可用。
8、session:
唯一可读写的属性,代表当前会话的字典对象。只有激活 Django 中的
'django.contrib.sessions.middleware.SessionMiddleware' 时该属性才可用。
9、get_full_path():
比如访问:http://127.0.0.1:8080/blog/index/?name=123
request.get_full_path() 得到的结果就是 /blog/index/?name=123,request.path 得到的结果是 /blog/index/。
10、get_port():
获得 django 服务的端口号。
11、POST 获得表单数据:
(1)获得单个数据(比如 input 框):
request.POST.get('')
(2)获得列表数据(比如 select 框):
request.POST.getlist('')
46.3、HttpResponse 对象:
1、说明:
对于 HttpRequest 对象来说,是由 django 自动创建的,但是 HttpResponse 对象就必须我们自己创建。每个 view
请求处理方法必须返回一个 HttpResponse 对象。引用 HttpResponse 模块的方法为
from django.shortcuts import HttpResponse。
2、在 HttpResponse 对象上扩展的常用方法:
(1)页面渲染:render(request, <".html文件">)
(2)页面跳转:redirect("路径")
(3)locals():可以直接将函数中所有的变量传给模板。
(4){"<自定以变量名>":<变量>, ......}:根据需要将函数中的变量传给模板。
3、render 和 redirect 的区别:
(1)区别:
render 返回页面内容(渲染变量到模板中),并且没有发送第二次请求,用户浏览器上的 URL 地址不会发生改变。
redirect 发送了第二次请求,是个跳转函数,而且会返回重定向 302 的状态码,用户浏览器上的 URL 地址会发生改变。
(2)补充,什么是重定向:
重定向指的是 HTTP 重定向,它是 HTTP 协议规定的一种机制。这种机制是这样工作的,当 client 向 server 发送一个
请求,要求获取一个资源时,在 server 接收到这个请求后发现请求的这个资源实际存放在另一个位置,于是 server 在
返回的 response 中写入那个请求资源的正确的 URL,并设置 reponse 的状态码为 302,表示这是一个要求浏览器重
定向的response,当 client 接受到这个 response 后就会根据新的 URL 重新发起请求。重定向有一个典型的特征,即
当一个请求被重定向以后,最终浏览器上显示的URL往往不再是开始时请求的那个URL了,这就是重定向的由来。
302 重定向:只是暂时的重定向。应用场景:未登陆的用户访问用户中心重定向到登录页面,访问404页面会重新定向到首页。
301 重定向:是永久的重定向。 应用场景:域名跳转。
(3)小结:
1)reader(request,'.html'):
返回的是template页面,不会改变url地址。
2)redict("url"):
返回的是url地址,会改变url地址。
46、django工程(view)的更多相关文章
- Django工程的建立以及小网站的编写
这篇博文会详细的介绍如何创建django工程,介绍我如何做了第一个网站.本文基于windows7安装了python2.7.12,Django1.8.18(LTS)版.采用的IDE为pycharm.建议 ...
- Django工程读取mongodb并使用分页器
pycharm开发django工程(二) 项目需求: 1. 从mongodb中读取数据,并显示到网页中 2. 在网页显示的每一页加入分页符 首先使用pycharm的企业版新建一个django的虚拟工程 ...
- Django的View(视图)和路由系统
一.Django的View(视图) 1.介绍 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一 ...
- Django的View(视图)
Django的View(视图) 一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...
- Django工程搭建
-----环境安装 1.创建虚拟环境 mkvirtualenv django_py3_1.11 -p python3 2.安装django pip install django==1.11.11 ...
- python web框架 django 工程 创建 目录介绍
# 创建Django工程django-admin startproject [工程名称] 默认创建django 项目都会自带这些东西 django setting 配置文件 django可以配置缓存 ...
- django学习笔记【001】django版本的确定&创建一个django工程
2.3 查看当前的django版本 python3. -m django --version 2.3.1 创建一个django工程 django-admin startproject mysite 在 ...
- Django工程目录结构优化
1.我看到这篇文章,写的不错,在此复制了一份,防止以后找不到! 感谢作者的翻译--->原文的链接:http://www.loonapp.com/blog/11/ 如果原文存在,请打开原文件阅读 ...
- Django工程创建
方法一: 1.win+r进入cmd命令窗口: 2.找到Django的安装地址: 3.cmd窗口中利用cd 进入相应的文件夹,再输入命令如下: django-admin.exe startproject ...
- Django基于Pycharm开发之一【创建django工程】
Django的工程结构,可以通过pycharm里面,选择创建django工程来直接创建,也可以通过命令行通过pip来安装. 一.通过命令行安装的步骤 Install Python. Install a ...
随机推荐
- CentOS 8.2远程连接vncserver升级后1.10.1无法启动解决记录
CentOS 8.2远程连接vncserver升级后1.10.1无法启动解决记录 问题起源:手贱yum upgrade,重启服务器后无法使用vnc viewer远程连接 查看状态 # system ...
- Centos7挂载windows共享目录
将windows的共享目录挂载到Centos7 查看是否有mount.cifs命令,如果没有,在线安装 [root@dropbox-bak01 ~]# yum install cifs-utils - ...
- python3 使用random函数批量产生注册邮箱
'''你是一个高级测试工程师,现在要做性能测试,需要你写一个函数,批量生成一些注册使用的账号. 1.产生的账号是以@163.com结尾,长度由用户输,产生多少条也由用户输入,2.用户名不能重复,用户名 ...
- 西门子 S7200 以太网模块连接组态王方法
北京华科远创科技有限研发的远创智控ETH-YC模块,以太网通讯模块型号有MPI-ETH-YC01和PPI-ETH-YC01,适用于西门子S7-200/S7-300/S7-400.SMART S7-20 ...
- CF1513F Swapping Problem(模型转化)
题目描述 You are given 2 arrays a a a and b b b , both of size n n n . You can swap two elements in b b ...
- centOS 7-Hadoop3.3.0完全分布式部署
本文内容不乏对各大佬的案例借鉴,侵删. 本次实验用到的有虚拟机,Xshell,Hadoop压缩包和jdk压缩包 hadoop111A:192.168.241.111 hadoop222B:192. ...
- TVM 优化 ARM GPU 上的移动深度学习
TVM 优化 ARM GPU 上的移动深度学习 随着深度学习的巨大成功,将深度神经网络部署到移动设备的需求正在迅速增长.与桌面平台上所做的类似,在移动设备中使用 GPU 既有利于推理速度,也有利于能源 ...
- 3D重建算法原理
3D重建算法原理 三维重建(3D Reconstruction)技术一直是计算机图形学和计算机视觉领域的一个热点课题.早期的三维重建技术通常以二维图像作为输入,重建出场景中的三维模型.但是,受限于输入 ...
- TensorFlow基础剖析
TensorFlow基础剖析 一.概述 TensorFlow 是一个使用数据流图 (Dataflow Graph) 表达数值计算的开源软件库.它使 用节点表示抽象的数学计算,并使用 OP 表达计算的逻 ...
- 开放式神经网络交换-ONNX(下)
开放式神经网络交换-ONNX(下) 计算节点由名称.它调用的算子operator的名称.命名输入的列表.命名输出的列表和属性列表组成. 输入和输出在位置上与算子operator输入和输出相关联.属性通 ...