公司的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请求,并处理后返回数据的更多相关文章

  1. 如何解决异步接口请求快慢不均导致的数据错误问题? - DevUI

    DevUI 是一款面向企业中后台产品的开源前端解决方案,它倡导沉浸.灵活.至简的设计价值观,提倡设计者为真实的需求服务,为多数人的设计,拒绝哗众取宠.取悦眼球的设计.如果你正在开发 ToB 的工具类产 ...

  2. 用ajax的同步请求解决登陆注册需要根据服务器返回数据判断是否能提交的问题

    最近在写www.doubilaile.com的登陆注册.需要用ajax请求服务器判断用户名是否存在,用户名和密码是否匹配,进而提交数据.碰到的问题是异步请求都能成功返回数据,但是该数据不能作为紧接着的 ...

  3. vue --- axios发post请求后台接收不到参数的三种解决方案

    最近用vue  做项目使用axios 发送post 请求时遇到了前端传数据后端接收不到的情况: 后来仔细对比发现axios传值是这样的: 而 ajax 传值是这样的: 一个 Request Paylo ...

  4. 接收某项课程id,通过axios发起get请求,由于携带params出现的问题(已解决)

    问题:在最新课程页面(NewBook.vue)点击某一项课程,通过传递该课程的 id 跳转至课程详情页(Bookdetail.vue),采取的跳转方式是声明式导航,即 <router-link  ...

  5. vue使用Axios做ajax请求

    vue2.0之后,就不再对vue-resource更新,而是推荐使用axios 1. 安装 axios $ npm install axios 或 $ bower install axios 2. 在 ...

  6. axios发送post请求后台接受不到问题

    axios发送post请求后台接受不到问题 1.首先这是前端的问题 2.解决方案不唯一,但这招肯定行 <!DOCTYPE html> <html> <head> & ...

  7. Python框架之Tornado(请求)

    概述 本篇就来详细介绍tornado服务器(socket服务端)是如何接收用户请求数据以及如果根据用户请求的URL处理并返回数据,也就是上图的3系列所有步骤,如上图[start]是一个死循环,其中利用 ...

  8. 使用Typescript重构axios(十六)——请求和响应数据配置化

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

  9. 使用Typescript重构axios(十八)——请求取消功能:总体思路

    0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...

随机推荐

  1. 查看Eclipse版本号及各个版本区别

    1. 找到eclipse安装目录 2. 进入readme文件夹,打开readme_eclipse.html 3. readme_eclipse.html呈现的第二行即数字版本号,如: Eclipse ...

  2. Spring JPA 使用@CreatedDate、@CreatedBy、@LastModifiedDate、@LastModifiedBy 自动生成时间和修改者

    JPA Audit 在spring jpa中,支持在字段或者方法上进行注解@CreatedDate.@CreatedBy.@LastModifiedDate.@LastModifiedBy,从字面意思 ...

  3. Arch LInux安装dde(Deepin Desktop Environment 深度桌面环境)

    我一直比较推荐一些Linux新手使用Deepin Linux,因为我认为这种尽量的follow Windows的系统至少对于新手来说是比较的友好的,而且预装了QQ 火狐浏览器中文版,甚至还移植了像36 ...

  4. kerberos环境下spark消费kafka写入到Hbase

    一.准备环境: 创建Kafka Topic和HBase表 1. 在kerberos环境下创建Kafka Topic 1.1 因为kafka默认使用的协议为PLAINTEXT,在kerberos环境下需 ...

  5. 从输出日志中提取接口的入参和返回做为用例导入到excel中

    1  背景 接口用例已经在项目中的yml文件中编写,但是yml文件不能做为交付文档用,本文对工作中从接口输出日志中提取用例信息,并导入到excel文件中做了总些 2  工具 idea,notepad+ ...

  6. poium测试库介绍

    poium测试库前身为selenium-page-objects测试库,我在以前的文章中也有介绍过:这可能是最简单的Page Object库,项目的核心是基于Page Objects实现元素定位的封装 ...

  7. 随心测试_软测基础_001<说在开始_测试理念>

  8. NodeJs之EXCEL文件导入导出MongoDB数据库数据

    NodeJs之EXCEL文件导入导出MongoDB数据库数据 一,介绍与需求 1.1,介绍 (1),node-xlsx : 基于Node.js解析excel文件数据及生成excel文件. (2),ex ...

  9. list遍历时删除的坑

    1.测试代码如下: public class StrTest { public static void main(String[] args) { ArrayList<String> li ...

  10. LODOP打印用JS获取的当前日期

    该文详细一步步解释JS获取当前时间的方法,新手小白也看到懂,最后是实际的获取当前年月份的方法.JS中的Date()对象,包含很多当前系统时间的方法,首先建立一个Date()对象,这里取名为date,然 ...