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