python接收axios的post请求,并处理后返回数据
公司的python工程师不会js和python数据交互,所以我就去试了一下。
首先安装python,django框架和django-cors-headers。
python官网下载,按提示操作,记住最后勾选add to path。
django和django-cors-headers可以用命令下载。
pip install django和pip install django-cors-headers
django是一个MVC框架,类似于SpringMVC,它号称MTC框架,model、template、controller,但使用率不高。
django-cors-headers用于解决跨域问题,前端是用的iview-admin,所以要跨域。
2.7以上的python创建项目,使用dos命令:django-admin startproject 项目名 来创建项目。
解决跨域问题,在setting.py中:
INSTALLED_APPS里面添加1项:'corsheaders'。
MIDDLEWARE里面添加2项:
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware'
再后面添加:
CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = (
'*'
)
CORS_ALLOW_METHODS = (
'DELETE',
'GET',
'OPTIONS',
'PATCH',
'POST',
'PUT',
'VIEW',
)
CORS_ALLOW_HEADERS = (
'XMLHttpRequest',
'X_FILENAME',
'accept-encoding',
'authorization',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
'Pragma',
)
基本配置已经设置完毕,下面开始写方法。
urls.py中配置路由,类似于SpringMVC的@RequestMapping和vue的router,请注意它的格式。
引入:
from django.conf.urls import url,include
from . import view
配置:
urlpatterns中添加url(r'^calculationAfter$', view.resultsData),第一个参数是路由的名字,注意格式r"^路由名字$"),第二个参数是文件名.方法名。
在view.py中添加一个方法:
from django.http import HttpResponse
from django.http import JsonResponse
def resultsData(request):
postBody = eval(str(request.body, encoding='utf-8'))
print(postBody)
# 计算结果
results = [
{'title':'TFe','index':'61.89'},
{'title':'CaO','index':'4.84'},
{'title':'SiO2','index':'3.02'},
{'title':'MgO','index':'1.75'},
{'title':'Al2O3','index':'1.68'},
{'title':'R2','index':'1.6'},
{'title':'烧结矿成本','index':'899.514'}
]
return JsonResponse(results, safe=False)
因为python有CSRF保护机制,直接请求会报错403,要在MIDDLEWARE中注释掉这一项:django.middleware.csrf.CsrfViewMiddleware
post请求要转码,先把request.body转成str,再转换utf-8,再用eval自动转为list或者dict,最后用JsonResponse()返回。第二个参数是safe=False
前面两句是接收请求参数。python也可以用request.GET["参数名"]和request.POST.get["参数名"]接受请求的参数,注意前台的请求是data还是params。
启动python,dos输入 python manage.py runserver 0.0.0.0:8088,后面的端口号可以修改。
打开浏览器访问:127.0.0.1:8088/calculationAfter,也可以使用postman类似工具或者直接写个画面,用axios或者ajax测试一下。
还有python对数据库的增删改查,也挺简单的。安装mysqlclient即可,时间有限,下次再写。
python接收axios的post请求,并处理后返回数据的更多相关文章
- 如何解决异步接口请求快慢不均导致的数据错误问题? - DevUI
DevUI 是一款面向企业中后台产品的开源前端解决方案,它倡导沉浸.灵活.至简的设计价值观,提倡设计者为真实的需求服务,为多数人的设计,拒绝哗众取宠.取悦眼球的设计.如果你正在开发 ToB 的工具类产 ...
- 用ajax的同步请求解决登陆注册需要根据服务器返回数据判断是否能提交的问题
最近在写www.doubilaile.com的登陆注册.需要用ajax请求服务器判断用户名是否存在,用户名和密码是否匹配,进而提交数据.碰到的问题是异步请求都能成功返回数据,但是该数据不能作为紧接着的 ...
- vue --- axios发post请求后台接收不到参数的三种解决方案
最近用vue 做项目使用axios 发送post 请求时遇到了前端传数据后端接收不到的情况: 后来仔细对比发现axios传值是这样的: 而 ajax 传值是这样的: 一个 Request Paylo ...
- 接收某项课程id,通过axios发起get请求,由于携带params出现的问题(已解决)
问题:在最新课程页面(NewBook.vue)点击某一项课程,通过传递该课程的 id 跳转至课程详情页(Bookdetail.vue),采取的跳转方式是声明式导航,即 <router-link ...
- vue使用Axios做ajax请求
vue2.0之后,就不再对vue-resource更新,而是推荐使用axios 1. 安装 axios $ npm install axios 或 $ bower install axios 2. 在 ...
- axios发送post请求后台接受不到问题
axios发送post请求后台接受不到问题 1.首先这是前端的问题 2.解决方案不唯一,但这招肯定行 <!DOCTYPE html> <html> <head> & ...
- Python框架之Tornado(请求)
概述 本篇就来详细介绍tornado服务器(socket服务端)是如何接收用户请求数据以及如果根据用户请求的URL处理并返回数据,也就是上图的3系列所有步骤,如上图[start]是一个死循环,其中利用 ...
- 使用Typescript重构axios(十六)——请求和响应数据配置化
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- 使用Typescript重构axios(十八)——请求取消功能:总体思路
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
随机推荐
- Python基础之字典
字典初识 字典的认识 首先,我们来认识一下字典: # 定义一个字典 user_dict = {"name": "zhangsan", "age&quo ...
- Parameter 'ids' not found. Available parameters are [array]
传的参数是一个数组, Long[] ids 后台错误写法 <delete id="deleteById"> delete from table where id in ...
- 分享两个细致、全面讲解Vue和React源码的链接
Vue: 1.http://hcysun.me/vue-design/ 2.https://ustbhuangyi.github.io/vue-analysis/(带视频,但收费) React: 3. ...
- 网络流 之 P2766 最长不下降子序列问题
题目描述 «问题描述: 给定正整数序列x1,...,xn . (1)计算其最长不下降子序列的长度s. (2)计算从给定的序列中最多可取出多少个长度为s的不下降子序列. (3)如果允许在取出的序列中多次 ...
- 《JAVA程序设计》_第六周学习总结
一.本周学习内容 1.内部类--7.1知识 在一个类的内部定义的类成为内部类,包含内部类的类叫做外嵌类 内部类和外嵌类的关系 外嵌类的成员变量在内部类中仍然有效,内部类也可调用外嵌类中的方法 内部类的 ...
- handsontable合并表头
想在页面中做类似excel的操作,发现handsontable符合要求. 然后发现这个文章 http://blog.csdn.net/wynan830/article/details/9054195 ...
- [Alpha阶段]第十一次Scrum Meeting
Scrum Meeting博客目录 [Alpha阶段]第十一次Scrum Meeting 基本信息 名称 时间 地点 时长 第六次Scrum Meeting 19/04/20 大运村寝室6楼 65mi ...
- Windows rundll32的用法-批处理管理打印机
用法: rundll32 printui.dll,PrintUIEntry [options] [@commandfile] /a[file] 二进制文件名 /b[name] 基本打印机名 /c[na ...
- feilong's blog | 目录
每次把新博客的链接分享到技术群里,我常常会附带一句:蚂蚁搬家.事实上也确实如此,坚持1篇1篇的把自己做过.思考过.阅读过.使用过的技术和教育相关的知识.方法.随笔.索引记录下来,并持续去改进它们,希望 ...
- Docker版本与安装介绍
Docker版本与安装介绍 Docker-CE 和 Docker-EE Centos 上安装 Docker-CE Ubuntu 上安装 Docker-CE Docker-CE和Docker-EE Do ...