クライアントがサーバに画像をアップロードし、サーバから画像認識を要求した結果. Djangoインストール1、pipを使用してDjangoをインストールする:pip install Django==2.2.4
2、インストールに成功したかどうかを確認する:import django
django.VERSION
サーバ構築1、新規プロジェクト名mysite:django-admin startproject mysite
作成に成功すると、mysite
├── manage.py
└── mysite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
2、外層mysiteディレクトリに入り、learn:python manage.py startapp learn
新たに生成されたフォルダlearnディレクトリは、learn
├── __init__.py
├── admin.py
├── apps.py app
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
└── views.py
3、新たに定義されたappをsettingsに追加するディレクトリ構造が見られる.pyのINSTALL_APPS中:# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'learn', #
]
4、views.pyで定義ビュー関数:# -*- coding: utf-8 -*-
from django.shortcuts import render
from django.http import HttpResponse
import random
# Create your views here.
def discern(request):#
return HttpResponse(random.randint(1,4))#
def upload(request):#
if request.method == "POST":
File = request.FILES.get("file", None)
if File is None:
return HttpResponse(" ")
else:
with open(File.name, 'wb+') as f:
for chunk in File.chunks():
f.write(chunk)
return HttpResponse("OK")
else:
return HttpResponse(" post ")
5、urls.pyで定義したビュー関数に関するURL:from django.contrib import admin
from django.conf.urls import url
from django.urls import path
from learn import views as learn_views
urlpatterns = [
path('admin/', admin.site.urls),
url('upload/',learn_views.upload,name='upload'),
url('discern/',learn_views.discern,name='discern'),
]
6、サービス開始:python manage.py runserver 0.0.0.0:8000
起動成功表示情報は以下の通りです:クライアント実装import urllib.request as urllib2
import requests
def mypost(url_mul,file):
files = {'file':open(file,'rb')}
r = requests.post(url_mul,files=files)
return (r.text)
if __name__ == "__main__":
#post
state = mypost(url_mul="http://127.0.0.1:8000/upload/",file="test.jpg")
print(state)
#
rs = urllib2.urlopen('http://127.0.0.1:8000/discern/')
data = rs.read().decode("utf-8")
print(data)
クライアントプログラムを実行すると、新しく構築されたサーバは次の情報を提示するはずです:settingsを修正する.pyファイルのプロパティAPPEND_SLASHは「APPEND_SLASH=False」であり、MIDDLEWARE属性の「django.middleware.csrf.CsrfViewMiddleware',クライアントプログラムを再実行し,正しい戻り結果を得た:ALLOWED_を修正するHOSTS属性は「ALLOWED_HOSTS=['*']」であり、実際のIPアドレス(非ローカルループバックアドレス)からWebサービスにアクセスできるようにする.