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