导读:本篇文章首席CTO笔记来给大家介绍有关django如何发送请求的相关内容,希望对大家有所帮助,一起来看看吧。
怎么在 Django 中向另外的 ip 发送 Post 请求
一、需要用到的场景 在jQuery中使用$.post()就可以方便的发起一个post请求,在android程序中有时也要从服务器获取一些数据,就也必须得使用post请求了。
二、需要用到的主要类 在android中使用post请求主要要用到的类是HttpPost、HttpResponse、
使用django开发一个比较简单的post接口
先把前置条件说一下
1.首先搭建好django环境 win+r 打开命令提示符 pip install django
3.然后创建一个自己的app
同样在命令提示符 进入刚创建的工程所在路径 输入 python manage.py startapp xxx(这个指你要创建的app名字),创新编辑器可以看到
4.正式开始开发一个post请求
首先设置好参数 在seetings.py文件里如图修改
views.py
最后在templates文件夹下创建一个html文件简单地写一下前端
我这里直接贴自己写的 login.html
code部分算是完成 看一下效果
还可以进入fiddler查看验证,为了比较好查到 我们先打开fiddler后输入用户名 密码后fiddler上 remove all session
可以得到这么一条数据包
username,password的值也和我们输入的一致
到此完成一个简单的post请求开发
Django使用POST和GET方法
2.在Views中定义方面
遇到一个问题,在login.html 中
如果action 为空的话,应该是默认使用当前的,填写表单后,一段时间打印的print(request.method)
一直都是get请求,不知道为什么,然后我也不知道修改了什么,就得到了预期。
如果您也遇到这种情况,请告诉我,谢谢!~
django做后台 android登陆成功后 android怎么发送请求才能通过@login_required
三种解决方案,
第一种就是模拟浏览器的Session ID Cookie,这种解决方案的好处是你的浏览器异步请求和移动端App共享基本不用改后端服务。
第二种解决方案,也就是Restful Service一般推荐的认证解决方案,就是把用户名密码用Base64编码后放到请求的header里面,实际就是传统的http basic认证方式。这个其实改动很小,因为Django支持这种认证方式,你把认证方式改一下,view代码不用改
第三种解决方案虽然简单,但是不推荐,那就是把用户名密码附加到每次的请求参数,这种方式乍看很简单,但实际不好,一是不安全,二是你或者改view,或者得写middleware.
Django请求与响应(request)与(response)
服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模块中定义了HttpRequest对象的API
form标签中的‘GET’和‘POST’
在HTML中,form表单的作用是收集标签中的内容,form.../form 中间可以由访问者添加类似于文本,选择,或者一些控制模块等等.然后这些内容将会被送到服务端。
一个表单必须指定两样东西:
form表单使用get方式提交的例子:
可以看见在地址栏会显示参数。
form表单使用post方式提交的例子:
一键多值的getlist方法:
request对象的属性GET、POST都是QueryDict类型的对象
与python字典不同,QueryDict类型的对象用来处理同一个键带有多个值的情况
GET属性:
View类视图以请求方式为类方法.
在对应的方式下面编写对应的逻辑函数.
就是将视图中的方法以类的方式书写逻辑。
View类视图的引用.
在url.py中配置路由是通过: as_view()
Django在处理文件上传的时候,文件数据被保存在了request.FILES,FILES中的每个键为input type="file" name="" /中的name
设置文件的存储路径:
1.在项目根目录下static中创建media文件夹
2.图片上传后,会被保存到“/static/media/文件”
3.打开settings.py文件,增加media_root项
FILES只有在请求的方法为POST 且提交的form带有enctype="multipart/form-data" 的情况下才会包含数据。否则,FILES 将为一个空的类似于字典的对象
文件上传视图函数:
HttpResponse对象:
HttpResponse的子类:
返回数据的响应函数有:
HttpResponse() 返回简单的字符串对象
render() 渲染模板
redirect() 重定向
JsonResponse() 返回json数据
HTTP协议:
HTTP(超文本传输协议)是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
客户端和服务器都是怎么记录登录的状态的呢?
浏览器中的----cookie:(请自行查找)
注意:设置cookie值以及删除cookie值都是response对象的操作,而获取cookie是从requeset相应中获得的.
虽然cookie可以保存状态,但注意不要存储敏感信息.
结语:以上就是首席CTO笔记为大家整理的关于django如何发送请求的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~