从 Android 应用在 Django 中保存图像
Save image in Django from Android app
我在 Django 中从 Android 应用保存图片时遇到问题。我搜索并最终解决了问题。我正在分享这个,这样它可能会有所帮助。请看下面的答案。
您必须根据自己的规范来实施。我只是向您展示一个通用示例
我在我的 android 应用程序中使用 okHttp 在网络上发送数据(包括图片)
Android AsyncTask 代码(doInBackground 方法)
RequestBody formBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("filename","filename",RequestBody.create(MediaType.parse("multipart/form-data"), new File(file.getPath())))
//.addFormDataPart("other_field", "other_field_value")
.build();
Request request = new Request.Builder()
.header("Authorization", "Token " + myToken)
.url(myUrl).post(formBody).build();
Response response = new OkHttpClient().newCall(request).execute();
return response.body().string();
我的view.py代码
def rechargeapplication(request):
user=#get your own object
uploadpic = request.FILES['filename']
user.picture.save("image.jpg",uploadpic)
user.save()
return JsonResponse({'result':'Success'})
我如何在 models.py
中创建 imageField
picture=models.ImageField(upload_to="photos" , null=True, blank=True)
如果您使用的是 ImageField,则必须安装 "Pillow"
还要确保在 settings.py 中指定 MEDIA_ROOT & MEDIA_URL。我正在向您展示我是如何做到的
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
并在 urls.py 的末尾添加此内容(因为我处于调试模式,这就是我实施的原因...)
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
我在 Django 中从 Android 应用保存图片时遇到问题。我搜索并最终解决了问题。我正在分享这个,这样它可能会有所帮助。请看下面的答案。
您必须根据自己的规范来实施。我只是向您展示一个通用示例
我在我的 android 应用程序中使用 okHttp 在网络上发送数据(包括图片)
Android AsyncTask 代码(doInBackground 方法)
RequestBody formBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("filename","filename",RequestBody.create(MediaType.parse("multipart/form-data"), new File(file.getPath())))
//.addFormDataPart("other_field", "other_field_value")
.build();
Request request = new Request.Builder()
.header("Authorization", "Token " + myToken)
.url(myUrl).post(formBody).build();
Response response = new OkHttpClient().newCall(request).execute();
return response.body().string();
我的view.py代码
def rechargeapplication(request):
user=#get your own object
uploadpic = request.FILES['filename']
user.picture.save("image.jpg",uploadpic)
user.save()
return JsonResponse({'result':'Success'})
我如何在 models.py
中创建 imageFieldpicture=models.ImageField(upload_to="photos" , null=True, blank=True)
如果您使用的是 ImageField,则必须安装 "Pillow" 还要确保在 settings.py 中指定 MEDIA_ROOT & MEDIA_URL。我正在向您展示我是如何做到的
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
MEDIA_URL = '/media/'
并在 urls.py 的末尾添加此内容(因为我处于调试模式,这就是我实施的原因...)
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)