首页
学习
活动
专区
圈层
工具
发布

Django(三):HttpReques

当一个请求连接进来时,django会创建一个HttpRequest对象来封装和保存所有请求相关的信息,并且会根据请求路由载入匹配的视图函数。...获取处理后的key和value,也可以通过HttpRequest.read()格式化 HttpRequest.path 返回请求的完整路径,不包括协议和域名 HttpRequest.GET GET请求参数...返回请求处理的url及相关参数 HttpRequest.session 中间件,设置session,一个可读可写的字典对象 HttpRequest.get_host() 获取请求的主机和端口 HttpRequest.get_port...使用httpie测试: # GET请求带参数 http http://127.0.0.1:8000/page/ -- name=Jan # PSOT请求 http -f POST 127.0.0.1:8000...它用“&”分割字符传,用“=”生成键值对,从而将一个类似GET请求参数的字符串解析成一个类似字典的对象。

88930
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    网站功能——添加文章编辑页面,支持 markdown 编辑器实时预览编辑

    首先应该创建两个请求接口:一个 GET 请求用来展示编辑页面,可以直接参考文章页面的类视图实现,这里需要进行权限控制,只有文章的作者和超管可以打开页面;另一个是 POST 请求接口,用来更新文章的 body...效果如下: 创建更新文章视图及url 更新文章要使用 POST 请求,我打算使用前端 ajax 来请求,所以视图是这样的: @require_http_methods(["POST"]) def update_article...article_slug = request.POST.get('article_slug') article_body = request.POST.get('article_body...,第一个参数是所有 django 的请求都应该带上的 csrf 验证,这个不清楚的可以去查一下相关作用,第二个参数是更新的接口地址,第三个参数是文章的 slug 字段,这个字段是唯一的,所以可以用来确定文章...总结 本篇文章主要分享了创建一个文章内容编辑页面的过程,主要使用到了 Django 的类视图、权限判断、POST 请求视图、ajax 请求、实例更新等 Django 相关知识点。

    99410

    Django+Vue项目学习第五篇:vue+django发送post请求,解决csrf认证问题

    本篇介绍如何在vue端向django发送post请求,以及django处理post请求的方式 这次要实现的功能是:点击【身份证ID】生成指定数量的身份证号 1....(如果是application/x-www-form-urlencoded格式的数据,必须要做这个处理,不然django会获取不到请求body中的参数) 2....请求,如果请求头Content-type=application/x-www-form-urlencoded,可以使用request.POST.get("num"),获取请求携带的参数 ok,到这里先试一下看看有没有正常得到响应...,我在网上冲浪了很久很久,终于找到了2个解决方法 解决django-csrf认证-方法1 最简单的方式就是关闭这个验证,把相关配置注释掉,即可跳过认证,自由的发送post请求(如果是自己学习的话,可以采用这个方式......... } 我也试了一下,发现不好用,还是得在顶部配置:axios.defaults.withCredentials = true 按照上述方法我成功解决了Django的csrf验证问题

    4.5K30

    django 入门:通用视图类重构视图

    :视图及模版》 《django入门:Admin管理系统及表单》 终于到最后一部分了,这部分我们将通过 django 自带的通用视图类替换之前写的视图函数,对视图进行重构 2 利用 django 通用视图类创建类视图..., DetailView from django.shortcuts import get_object_or_404 from blog.models import Post # 获取相应模型下的全部数据...从 url 捕获的命名组参数值保存在实例的 kwargs 中,是一个字典 # 非命名组参数值保存在实例的 args 中,是一个列表 category = get_object_or...优化分页列表 最后我们列下 Paginator 常用属性结束 django 的入门教程,接下来会有 DRF 的入门教程,django 算是其基础吧,DRF 实现了前后端分离,刚好适合我这种 Android...'j', 'k', 'l', 'm', 'n'] # 指定 paginator 的列表以及每页显示的列表数量 p = Paginator(item_list, 2) print(p.count) #

    1.4K20

    DjangoRestFramework,restful规范、APIview、解析器组件、Postman等

    2.6 过滤信息(filtering,或称查询参数)       如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。       下面是一些常见的参数。 ?...animal_type_id=1:指定筛选条件       参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?...403 Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限。 404 Not Found:所请求的资源不存在,或不可用。...,即使发生错误,也返回200状态码,把错误信息放在数据体里面,就像下面这样。...('POST')   源码看着比较复杂,这里我就不列举了,反正你要知道的是,我们的解析器的查找使用顺序是:     自己写的类里面的parser_classes = [JSONParser,]---->

    3.1K20

    Django学习-第十三讲(下):表单(一)forms.form、forms.modelform

    还是POST请求来做相应的操作。...如果是GET请求,那么返回一个空的表单,如果是POST请求,那么将提交上来的数据进行校验。...在使用POST请求的时候,我们根据前端上传上来的数据,构建一个新的表单,这个表单是用来验证数据是否合法的,如果数据都验证通过了,那么我们可以通过cleaned_data来获取相应的数据。...2.2 django 表单常用验证器 在验证某个字段的时候,可以传递一个validators参数用来指定验证器,进一步对数据进行过滤。...比如在注册的表单验证中,我们想要验证手机号码是否已经被注册过了,那么这时候就需要在数据库中进行判断才知道。

    4K40

    用django写接口(实战篇)

    view,那这部分我们继续深入了解下 DRF 的分页,多条件筛选以及 Token 权限认证 接口数据分页 如果说,后台给你返回的数据很多很多,然后又没有做分页(反正我是碰到过),然后就一直卡在加载界面...1.设置全局分页参数 我们可以在 project 下的 settings.py 文件中加入 REST_FRAMEWORK 字典,设置全局的分页参数 REST_FRAMEWORK = { # 配置全局分页类型和每页数量...Pagination 类 pagination_class = StandardPagination 为了方便查看,我把每页设置一条参数,结果页面如下 ?...类来写 class PostFilter(django_filters.rest_framework.FilterSet): # 定义进行过滤的参数,CharFilter 是过滤参数的类型,过滤器参数类型还有很多...http http://192.168.x.xxx:8080/api/posts/ 能够正常返回的 post 列表 接着我们做 post 提交试试, 自行完善参数值,注意在 posts/ 后有个空格

    2.8K20

    体验Django REST framework,解读REST架构风格

    如果有对REST架构风格还不了解,或者一知半解的朋友,可以读读我的另一篇文章《那些年,我们一起误解过的REST》。...,实现了get、post、put、delete等请求方法对应的通用处理方法,直接继承可以极大地简化代码。...请求参数适用于放过滤条件、分页信息等内容。 2.2 连通性 在GET /请求的响应中,包含了user资源和对应group资源的URI。...反应到页面上,在GET /users资源时,页面可以提供如下页面来创建一个新的user资源,而这一切都是因为约定了POST是创建操作,资源描述通过body传递,资源ID由服务器自动生成,新生成资源的URI...[image.png] 2.4 资源的表述 在《那些年,我们一起误解过的REST》文中我提到过,同一个资源可以有多个不同的表述,每个表述需要是自描述的。

    4.5K582

    Django实战-添加应用

    Django实战-应用列表 Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用...完成了小程序九宫格的应用渲染,在用户登录后即可添加不同的应用。在之前的用户授权登录中,将 cookie 保存至 storage,这样就可以判定用户是否通过了服务端的登录验证。 ?...一、服务端 from django.views import View ? ① 需要判断用户是否登录,再返回用户已经添加的应用。...(request) # 接收用户添加应用的请求参数 post_menu = json.loads(request.body.decode('utf-8')) post_menu...= post_menu.get("data") focus_menu = [] for item in post_menu: print(item) #

    88910

    django之路由分组,反向解析,有名

    ^test/([0-9]{4})/', views.test), 会将加了括号的正则表达式匹配的内容当做位置参数传递给后面的视图函数 具体操作如下: ?...伪静态 假装自己的路径是一个静态(数据写死的)文件的路径,其实你 是经过了视图函数处理,动态渲染页面 提高百度收藏你这个网页力度,当别人搜索你这个页面相关的内容 百度会优先展示你的页面...的区别(了解) 1.0里面的url对应django2.0里面re_path django2.0里面的path第一个是精准匹配(你怎么写的,我就怎么匹配) django1.0版本中匹配到的参数都是字符串类型...第二个疑问: 为什么我get请求就走get方法,post请求就走post方法 ?...request的八种属性:   request.GET   request.POST   request.method   request.body     原始数据   request.path

    2K10

    34c3 部分Web Writeup

    flag=C3_1);} 完全的payload我就不专门写了,理解题目的思路比较重要。...整个题目的利用链非常精巧,服务端bot比我想象中要强大很多,有趣的是,整个题目存在配置的非预期,我一度认为非预期解法是正解。...superblog 这道题目做起来没有urlstorage有趣,比赛途中我的思路也是卡在了如何执行我想要的js语句,因为符号的限制,让很多Bypass CSP的思路都断了,这里感谢@超威蓝猫的wp提到的绕过思路...type参数可以指定json、jsonp的返回类型,同时还接受cb参数,cb中有很多很多过滤,但是可以被绕过 django本身的session设置的,所以即使我们获取到settings中的SECRET_KEY也没有意义,也就是说,我们只能通过bot获取flag。

    1.9K100

    谈谈Django的CSRF插件的漏洞

    今年十月份我的第二本书《基于Django的电子商务网站设计》出版了,在这本书中我不仅介绍了如何利用Django框架搭建电子商务网站,也论述了如何利用python的requests类对所创建的电子商务产品进行接口测试...在书写极乐口测试代码过程中,我遇到的最大的困难就是如何通过测试程序绕过Django的防止CSRF攻击的插件,通过近一个多月的努力我终于解决了这个问题,但是同时也揭露了Django框架的防止CSRF攻击的插件的漏洞...变成了绝对路径http://www.a.com/login/,这样“黑客”就绕过了前端的验证,可以对自己代码进行编写自动化脚本实现用穷举的方法来试图登录系统。...“"]”,所以后面用语句“csrf_token = csrf_token[2:-2]”过滤出来,然后利用requests的post方法,先构造post参数:“payload={"username":"cindy...通过cookies = {"csrftoken":csrf_token}构造cookes值,通过cookies=cookies作为post参数传给后台。

    1.5K10
    领券