Python 从应用程序向服务器发送图像时出错
从Swift应用程序向Django服务器发送图像时出错。 我正在制作Swift应用程序,我想在我的应用程序中制作一个系统,将图像上传到我的Django服务器。因此,在这段时间,当我运行Xcode的emulator(它是iPhone的emulator)时,我选择了图像,然后我按下“发送”按钮,将图像发送到服务器,我想将图像发送到我的服务器。但是错误发生了。 回溯(在Xcode中)是 我在网上读到这个错误,我认为这个错误是由错误的url引起的。所以我认为urlPython 从应用程序向服务器发送图像时出错,python,ios,swift,django,xcode,Python,Ios,Swift,Django,Xcode,从Swift应用程序向Django服务器发送图像时出错。 我正在制作Swift应用程序,我想在我的应用程序中制作一个系统,将图像上传到我的Django服务器。因此,在这段时间,当我运行Xcode的emulator(它是iPhone的emulator)时,我选择了图像,然后我按下“发送”按钮,将图像发送到服务器,我想将图像发送到我的服务器。但是错误发生了。 回溯(在Xcode中)是 我在网上读到这个错误,我认为这个错误是由错误的url引起的。所以我认为urllet myUrl=NSURL(字符串:
let myUrl=NSURL(字符串:http://127.0.0.1:8000/accounts/upload/post");代码>
在斯威夫特,这是错误的。
但我认为这是正确的。
我在Django Server中编写了Server/accounts/views.py的代码
from django.contrib.auth.forms import AuthenticationForm
from django.contrib.auth.decorators import login_required
from django.http import HttpResponse
from django.shortcuts import render, redirect
from django.views.decorators.http import require_POST
from .forms import RegisterForm
from django.contrib.auth import authenticate, login
from .models import Post
from .forms import UserImageForm
from .models import ImageAndUser
def index(request):
context = {
'user': request.user,
}
return render(request, 'registration/accounts/index.html', context)
@login_required
def profile(request):
context = {
'user': request.user,
}
return render(request, 'registration/accounts/profile.html', context)
def regist(request):
form = RegisterForm(request.POST or None)
context = {
'form': form,
}
return render(request, 'registration/accounts/regist.html', context)
def index(request):
context = {
'user': request.user,
}
return render(request, 'registration/accounts/index.html', context)
@login_required
def profile(request):
context = {
'user': request.user,
}
return render(request, 'registration/accounts/profile.html', context)
def regist(request):
form = RegisterForm(request.POST or None)
context = {
'form': form,
}
return render(request, 'registration/accounts/regist.html', context)
@require_POST
def regist_save(request):
form = RegisterForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
context = {
'user': request.user,
}
return redirect('profile')
context = {
'form': form,
}
return render(request, 'registration/accounts/regist.html', context)
@login_required
def photo(request):
d = {
'photos': Post.objects.all(),
}
return render(request, 'registration/accounts/profile.html', d)
def upload(request, p_id):
form = UserImageForm(request.POST or None)
d = {
'p_id': p_id,
'form':form,
}
return render(request, 'registration/accounts/photo.html', d)
def upload_save(request):
photo_id = request.POST.get("p_id", "")
if (photo_id):
photo_obj = Post.objects.get(id=photo_id)
else:
photo_obj = Post()
files = request.FILES.getlist("files[]")
photo_obj.image = files[0]
# photo_obj.image2 = files[1]
# photo_obj.image3 = files[2]
photo_obj.save()
# return render(request, "registration/accounts/photo.html")
photos = Post.objects.all()
context = {
'photos': photos,
}
return render(request, 'registration/accounts/photo.html', context)
def kenshinresults(request):
d = {
'results': results,
}
return render(request, 'registration/accounts/kenshin_result.html', d)
def tc(request):
tcresults = ImageAndUser.objects.filter(user=request.user).order_by('id').last()
d = {
'tcresults': tcresults,
}
return render(request, 'registration/accounts/tc.html', d)
我在Server/accounts/url.py中编写了代码
from django.conf.urls import url
from . import views
from django.contrib.auth.views import login, logout
from django.views.generic import TemplateView
urlpatterns = [
url(r'^login/$', login,
{'template_name': 'registration/accounts/login.html'},
name='login'),
url(r'^logout/$', logout, name='logout'),
url(r'^regist/$', views.regist,name='regist' ),
url(r'^regist_save/$', views.regist_save, name='regist_save'),
url(r'^profile/$', views.profile, name='profile'),
url(r'^photo/$', views.photo, name='photo'),
url(r'^upload/(?P<p_id>\d+)/$', views.upload, name='upload'),
url(r'^upload_save/$', views.upload_save, name='upload_save'),
url(r'^kenshinresults$', TemplateView.as_view(template_name='registration/accounts/kenshin_result.html'),
name='kenshinresults'),
url(r'^tcresults$', views.tc,name='tcresults'),
]
怎么了?不是服务器的url错误吗?您正在将图像发送到路径/accounts/upload/post
,但没有定义与该路径匹配的url
您的意思可能是/accounts/upload\u save/
?您正在将图像发送到路径/accounts/upload/post
,但您没有定义与该路径匹配的URL
你的意思可能是/accounts/upload\u save/
?你能更新图像拾取和上传到服务器的代码吗?你能更新图像拾取和上传到服务器的代码吗?你的说法是对的,所以我写了类似let myUrl=NSURL(字符串:“这一次,我犯了一个错误。我更新了我的问题,所以如果你知道什么,请告诉我。你的说法是对的,所以我写了url,比如让myUrl=NSURL(字符串):“这一次,我犯了一个错误。我更新了我的问题,所以如果你知道什么,请告诉我。”。
from django.conf.urls import url
from . import views
from django.contrib.auth.views import login, logout
from django.views.generic import TemplateView
urlpatterns = [
url(r'^login/$', login,
{'template_name': 'registration/accounts/login.html'},
name='login'),
url(r'^logout/$', logout, name='logout'),
url(r'^regist/$', views.regist,name='regist' ),
url(r'^regist_save/$', views.regist_save, name='regist_save'),
url(r'^profile/$', views.profile, name='profile'),
url(r'^photo/$', views.photo, name='photo'),
url(r'^upload/(?P<p_id>\d+)/$', views.upload, name='upload'),
url(r'^upload_save/$', views.upload_save, name='upload_save'),
url(r'^kenshinresults$', TemplateView.as_view(template_name='registration/accounts/kenshin_result.html'),
name='kenshinresults'),
url(r'^tcresults$', views.tc,name='tcresults'),
]
objc[31747]: Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x11aa7d998) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x119968880). One of the two will be used. Which one is undefined.
2017-06-16 23:11:52.837756 Kenshin_Swift[31747:1350088] [Generic] Creating an image format with an unknown type is an error
2017-06-16 23:11:54.274757 Kenshin_Swift[31747:1350153] [] nw_socket_get_input_frames recvmsg(fd 13, 1024 bytes): [54] Connection reset by peer
2017-06-16 23:11:54.276896 Kenshin_Swift[31747:1350153] [] nw_endpoint_flow_prepare_output_frames [1 127.0.0.1:8000 ready socket-flow (satisfied)] Failed to use 1 frames, marking as failed
2017-06-16 23:11:54.277301 Kenshin_Swift[31747:1350153] [] nw_socket_write_close shutdown(13, SHUT_WR): [57] Socket is not connected
2017-06-16 23:11:54.277684 Kenshin_Swift[31747:1350153] [] nw_endpoint_flow_service_writes [1 127.0.0.1:8000 ready socket-flow (satisfied)] Write request has 0 frame count, 0 byte count
2017-06-16 23:11:54.278467 Kenshin_Swift[31747:1350154] [] __tcp_connection_write_eof_block_invoke Write close callback received error: [89] Operation canceled
error=Optional(Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x60800025cda0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=http://127.0.0.1:8000/accounts/upload_save/, NSErrorFailingURLKey=http://127.0.0.1:8000/accounts/upload_save/, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.})