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(三) ...
随机推荐
- composer在update时提示file could not be downloaded: SSL operation failed with code 1. OpenSSL Error messages: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO
在开发的时候,需要把依赖的服务更新到最新,然后 手动composer update一下,提示如下: failed) Update failed (The "e "https://a ...
- 【博客导航】Nico博客导航汇总
摘要 介绍本博客关注的内容大类.任务.工具方法及链接,提供Nico博文导航. 导航汇总 [博客导航]Nico博客导航汇总 [导航]信息检索导航 [导航]Python相关 [导航]读书导航 [导航]FP ...
- vps install ss
1.install ss yum install python-setuptools easy_install pip pip install shadowsocks 2.config ss (sin ...
- Socket与WebScoket
socket 英文socket的意思是插座,网络中的Socket是一个抽象的接口,可以理解为网络中连接的两端.通常被叫做套接字接口,其意义在对传输层进行封装屏蔽了传输层的复杂性.它并不是一个协议,是为 ...
- mongo 监听指定语句
class Program { private static string conn = "mongodb://47.104.206.56:27017"; //数据库名称 priv ...
- Django-admin管理工具
知识预览 admin组件使用 admin源码解析 admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目 ...
- scala的多种集合的使用(3)之遍历集合的方法
遍历集合的方法 1.用foreach循环遍历一个集合 foreach接收一个函数作为参数.定义的函数应该接收一个元素作为输入参数,然后不要返回任何的东西.输入的参数的类型应该匹配集合中的类型.随着fo ...
- 新人大餐:2018最新Office插件开发之ExcelDNA开发XLL插件免费教学视频,五分钟包教包会
原始链接:https://www.cnblogs.com/Charltsing/p/ExcelDnaVideoCourse.html QQ: 564955427 先解释一下,为什么要做这个视频: 我在 ...
- OpenStack端口(15)
一.OpenStack组件使用的默认端口号 openstack openstack service default ports port type keystone Identity service ...
- 'python'不是内部或外部命令,也不是可运行程序或批处理文件
配置两个环境变量: 我的电脑——属性——高级系统设置——环境变量——用户变量——path(新建) 1.配置python\python.exe所在的路径 path新建:C:\Users\Py ...