python如何建立和啟動Django(包含post和get請求)
阿新 • • 發佈:2019-01-09
存在這樣的一種需求,通過頁面點選給模型(如doc2vec)傳入引數,模型呼叫後得到的結果再返回給頁面,“每次呼叫”在這個過程中就涉及到一個叫做“頁面等待時間”的問題,如果模型較大,每次呼叫之前的模型載入都會耗費很多時間,為了減少使用者在頁面的等待時長,可通過開啟Django服務,使模型一直處於載入好的狀態。
- 在python中安裝django包
Pip install django
- 建立專案流程
(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))
至此,指令碼修改完畢。
- 然後需要啟動服務
在/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