python接收前端post数据_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创建项目,使用命令: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接收前端post数据_python接收axios的post请求,并处理后返回数据)