限制请求method

什么是method

1.通常客户端请求服务器获取资源为GET方式

2.客户端提交数据给服务器端数据为POST方式

method限制请求

如果要限制请求,比如客户端只允许用GET方式访问网站,其他的方式统统不允许,那么就可以如下:

require_http_methods()中可以传入访问方式,只可以用列表当中的访问方式访问,初次之外的方式都不允许访问;(require_GET,require_POST)也可以实现

from django.shortcuts import render,HttpResponse
from django.views.decorators.http import require_http_methods,require_GET,require_POST # @require_http_methods(['POST'])
@require_GET
def index(request):
return HttpResponse('ok')

重定向

重定向分为永久性重定向和临时性重定向,在页面上做一个访问的操作会调转到另一个网址

  • 永久性重定向:http的状态码为301,多用于旧网址被废弃了要转到一个新的网址确保用户访问,最经典的就是京东网站,你输入www.jingdong.com,但是会跳转到www.jd.com这个网址,这种叫做永久性重定向
  • 临时性重定向:http的状态码为302,表示页面的暂时性跳转,比如访问一个需要权限的网址,如果用户没有登录,那么应该重定向到登录页面,这种情况叫做临时性重定向,比如:www.zhihu.com

在django中,重定向使用reverse(to,*args,permanent=False,**kwargs)来实现的,to是一个url,permanent代表的是这个重定向是否是一个永久性重定向,默认是False,关于重定向的例子如下(临时性重定向):

from django.shortcuts import render,HttpResponse,reverse,redirect
from django.views.decorators.http import require_http_methods,require_GET,require_POST require_http_methods(['POST','GET'])
def index(request):
username = request.GET.get('username')
print(username)
if username:
return HttpResponse('首页')
else:
return redirect(reverse('register')) def register(request):
return HttpResponse('注册页')

request对象常用方法

  1. is_secure():是否采用https协议
  2. is_ajax():是否采用ajax发送的请求,原理就是判断请求头中是否存在:X-Requested-With:XHLHttpRequest
  3. get_host():服务器的域名。如果在访问的时候还有端口,那么会加上端口号。比如:www.fengzi.com:8000
  4. get_full_path():返回完整的path。如果有查询字符串还会加上查询字符串,比如:/moive/bind/?username=fengzi
  5. get_raw_url():获取请求的完整url

django2.2(一)的更多相关文章

  1. django2.0+linux服务器 ,如何让自己电脑访问

    这几天一直在搞这个服务器端口开放问题,来让自己电脑可以访问服务器下的django网页,今天终于弄好了~~~~~离成功又进了一步~~~~~ 1.首先,我们来开放一个linux服务器的端口(我开放了828 ...

  2. Django2中文文档--目录及介绍部分

    Django2文档-文档结构 我是按照官方文档的格式进行翻译,所以格式根官方格式一致 如果大家发现哪些地方有问题可以联系我 2426525089@qq.com 或者加入QQ群跟我一起翻译,群号码: 2 ...

  3. Django2.0中文文档

    title: Django2.0中文文档 tags: Python,Django,入沐三分 grammar_cjkRuby: true --- Django2.0版本已经发布了,我们先来看一个图片 从 ...

  4. django2 快速安装指南

    django2 快速安装指南 1. 安装 作为一个 Python Web 框架,Django需要Python的支持.请参阅 我可以在Django中使用哪些Python版本?了解详情.Python包含一 ...

  5. 54.1 怎样才算学会django? 知道这28个知识点才算会django2

    学到什么程度才算会django了?这篇文章帮你梳理一下 关于django2的28个不可不知的知识点总结: 1.cookie操作: -客户端本地存储的键值对 2.session操作: -服务器端可以保存 ...

  6. python3下Django2.0配置最新xadmin详解

    1,打开pycharm,创建一个Django项目 2,安装Django,默认是最新版本,pip3 install -i https://pypi.douban.com/simple/ django 3 ...

  7. 【Python3.6+Django2.0+Xadmin2.0系列教程一】环境搭建及项目创建

    由于工作需要,接触了大半年时间的Django+xadmin框架,一直没空对这块对进行相关的梳理.最近在同事的怂恿下,就在这分享下笔者的学习及工作经验吧. 好了,话不多说,下面开始进入正题: 环境需求: ...

  8. python3+django2 开发易语言网络验证(上)

    创作背景: 在某论坛中下载到一套php开发易语言网络验证的教程,照着看下来,花了两天的时间,结果发现教程里开发的网络验证,以及随着教程一起给学员的源码,都存在着根本用不了的bug!我想要看看能不能在原 ...

  9. python3+django2 开发易语言网络验证(中)

    第四步:网络验证的逻辑开发 1.将model注册到adminx.py中 1.在apps/yanzheng目录下新建admin.py 文件,添加代码: import xadmin from xadmin ...

  10. Django:Python3.6.2+Django2.0配置MySQL

    持续学习Django中... Django默认使用的数据库是python自带的SQLlite3,但SQLlite并不适用于大型的项目,因此我将数据库换成了MySQL,下面介绍下Django如何配置数据 ...

随机推荐

  1. NOIP 2002 过河卒

    洛谷P1002 https://www.luogu.org/problemnew/show/P1002 JDOJ 1290 https://neooj.com/oldoj/problem.php?id ...

  2. b站滑动验证码图片的获取-python

    本文仅是获取验证码图片,python+selenium实现 图片的处理,算出偏移位置网上都有现成的:而由于b站的更新,图片的获取则与之前完全不同,不能直接从html中拿到 过程比较曲折所以记录一下,可 ...

  3. js的call()方法

    // ① 当函数中没有this时,call().apply()和直接执行没有区别 function fn(){ console.log("aaa") } fn() // aaa f ...

  4. [LeetCode] 241. Different Ways to Add Parentheses 添加括号的不同方式

    Given a string of numbers and operators, return all possible results from computing all the differen ...

  5. oracle--oracle18C DBCA建库(一)

    一,环境配置 克隆或者安装一台oracle18c 只需要安装软件即可 主机名 ip 角色 db_inique oracle18c 192.168.0.162 主 oracle oracle18c2 1 ...

  6. linux-根目录添加内存

    01,添加磁盘到服务器 02, 查看添加的内容 这个是新添加的 03, 创建新分区 [root@oracle01 ~]# fdisk /dev/sdb --格式化分析 Welcome ). Chang ...

  7. java8 HashMap源码 详细研读

    HashMap原理 目的: 单纯分析和学习hashmap的实现,不多说与Hashtable.ConcurrentHashMap等的区别. 基于 jdk1.8 在面试中有些水平的公司比较喜欢问HashM ...

  8. JVM学习笔记1

    1.运行时数据结构 2.堆分代 3.垃圾收集器 Parallel Scavenge收集器:新生代称为PSYoungGen,老年代称为ParOldGen,永久代称为Metaspace ParNew收集器 ...

  9. Python3.7 exe编译工具对比zz

    For years, NVDA has used Py2exe to package Python code into something that is executable on a system ...

  10. 集合类源码(二)Collection之List(ArrayList, LinkedList, Vector)

    ArrayList 功能 完全命名 public class ArrayList<E> extends AbstractList<E> implements List<E ...