限制请求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. The Preliminary Contest for ICPC Asia Shanghai 2019 C. Triple

    [传送门] FFT第三题! 其实就是要求有多少三元组满足两短边之和大于等于第三边. 考虑容斥,就是枚举最长边,另外两个数组里有多少对边之和比它小,然后就是 $n^3$ 减去这个答案. 当 $n \le ...

  2. T430 Linux Setting Memo

    touchpad:xinput listxinput --disable 11 dns setting:/etc/resolv.conf vpn:@Darkduck19XX yum-config-ma ...

  3. ABP 相关基础知识

    好文章: https://www.cnblogs.com/1zhk/p/5268054.html 关键字:Internal 限定的是只有在同一程序集中可访问,可以跨类 关键字:volatile 一个变 ...

  4. mission3--dp

    A---母牛的故事 题目大意:第一年有一头母牛,每年年初母牛生小母牛,小母牛第四个年头可以开始生小牛. 问第n年有多少头牛. 题解: (1)列出前几项来找规律(2)第i年牛的数量=第i-1年牛的数量+ ...

  5. Kubernetes 学习(八)Kubernetes 源码阅读之初级篇------源码及依赖下载

    0. 前言 阅读了一段时间 Golang 开源代码,准备正式阅读 Kubernetes 项目代码(工作机 Golang 版本为 Go 1.12) 参照 <k8s 源码阅读> 选择 1.13 ...

  6. java包学习之JDBC

    public class DemoJDBC { public static void main(String[] args) throws ClassNotFoundException, SQLExc ...

  7. 实战django(一)--(你也能看懂的)注册与登录(带前端模板)

    先是具体目录:(主要是注意templates和static的位置),其中person文件夹是上一期实战的,不用理会,login是本节实战app 项目urls.py from django.contri ...

  8. [转帖]k8s 如何让你的应用活的更久

    k8s 如何让你的应用活的更久 https://www.jianshu.com/p/132319e795ae 众所周知,k8s 可以托管你的服务 / 应用,当出现各种原因导致你的应用挂掉之后,k8s ...

  9. freemarker模板文件的4个组成部分

    FreeMarker模板文件主要由以下4个部分组成:1.文本,直接输出的部分.2.注释,即<#–…–>格式不会输出.3.插值(Interpolation):即${..}或者#{..}格式的 ...

  10. MySQL 只能做小项目?松哥要说几句公道话!

    松哥上学那会,很多人对 MySQL 有一些偏见,偏见主要集中在以下几方面: MySQL 不支持事务(事实上 MyISAM 有表锁,但是效率比较低) MySQL 存储的数据量比较小,适合小项目,大项目还 ...