python接收axios的post請求,並處理後返回數據

公司的python工程師不會js和python數據交互,因此我就去試了一下。前端

首先安裝python,django框架和django-cors-headers。vue

python官網下載,按提示操做,記住最後勾選add to path。python

django和django-cors-headers能夠用命令下載。mysql

pip install django和pip install django-cors-headersios

django是一個MVC框架,相似於SpringMVC,它號稱MTC框架,model、template、controller,但使用率不高。ajax

django-cors-headers用於解決跨域問題,前端是用的iview-admin,因此要跨域。sql

2.7以上的python建立項目,使用命令:django-admin startproject 項目名 來建立項目。數據庫

解決跨域問題,在setting.py中:django

INSTALLED_APPS裏面添加1項:'corsheaders'。axios

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便可,時間有限,下次再寫。

相關文章
相關標籤/搜索