1. 程式人生 > >python如何建立和啟動Django(包含post和get請求)

python如何建立和啟動Django(包含post和get請求)

存在這樣的一種需求,通過頁面點選給模型(如doc2vec)傳入引數,模型呼叫後得到的結果再返回給頁面,“每次呼叫”在這個過程中就涉及到一個叫做“頁面等待時間”的問題,如果模型較大,每次呼叫之前的模型載入都會耗費很多時間,為了減少使用者在頁面的等待時長,可通過開啟Django服務,使模型一直處於載入好的狀態。

  1. 在python中安裝django包
Pip install django
  1. 建立專案流程

(1)新建資料夾,如:

mkdir /home/hadoop/hellodjango

(2)進入資料夾所在路徑:

cd /home/hadoop/hellodjango

(3)建立一個helloword的django專案

python /home/anaconda2/bin/django-admin.py startproject helloword

此時會自動生成2個檔案:helloword資料夾以及manage.py。
其中helloword資料夾下有4個py檔案:

__init__.py 
settings.py  
urls.py  
wsgi.py

init.py:

__init__.py : 空檔案,不用管。
Settings.py : 一些配置資訊,只需要改ALLOWED_HOSTS = [] 為
ALLOWED_HOSTS = ['*'],允許所有使用者訪問
**檔案內容從**
from django.
conf.urls import url from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), ] **變成** from django.conf.urls import url from django.contrib import admin from . import view urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$', view.test) ]

我們建立一個view.py(名字可以隨便起)檔案,裡面放上我們自己的程式碼,如:

from django.http import HttpResponse
from gensim.models.doc2vec import Doc2Vec

def test(request):
    request.encoding = 'utf-8'
    model = Doc2Vec.load("model_test.model")
return HttpResponse(model.docvecs.most_similar(request.GET['num1'], topn=10))

至此,指令碼修改完畢。

  1. 然後需要啟動服務
/hellodjango/helloword路徑下執行:
python manage.py runserver 0.0.0.0:18888
18888:隨意賦予的一個埠號

即可啟動服務。

以上為post和get請求共同的部分,以下為不一樣的地方。

get請求:
在服務開啟後,可通過瀏覽器傳參頁面返回結果的的方式測試是否成功:

在瀏覽器中訪問:00.0.000.00:18888/?num1=&&&
00.0.000.00:相應的IP地址
18888:和啟動服務時的埠號一致
&&&:要傳遞的引數

post請求:
view.py指令碼在接收post請求的函式前需要加上csrf_exempt裝飾器,即:post請求加csrf_exempt裝飾器的原因

from django.views.decorators.csrf import csrf_exempt
# Create your views here.
@csrf_exempt

且測試的時候不能在url頁面傳參,要下載Postman客戶端。Postman客戶端下載百度網盤連結和提取碼。要是沒有幣值,我qq發給你:2690382987