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

Settings.py : 一些配置信息,只需要改ALLOWED_HOSTS = [] 为
ALLOWED_HOSTS = ['*'],允许所有用户访问

url.py

**文件内容从**
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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值