提问人:Mashud Hassan 提问时间:11/15/2023 最后编辑:Brian Tompsett - 汤莱恩Mashud Hassan 更新时间:11/15/2023 访问量:18
在 Django 应用程序中为上传的图像生成可公开访问的 URL 时遇到问题
Trouble Generating Publicly Accessible URL for Uploaded Images in Django App
问:
我目前正在开发一个本地托管的 Django 应用程序,该应用程序接受用户上传的图像。图像已成功存储,但我在为这些上传的图像生成可公开访问的 URL 方面面临挑战。最终目标是将此 URL 馈送到 replicate.com API 终结点。
以下是我的过程的简要概述:
- 用户通过 Django 应用程序上传图像。
- 映像存储在本地服务器上。
- 需要为上传的图像生成可公开访问的 URL。 views.py:
from django.shortcuts import render
import os
import replicate
from .forms import ImageUploadForm
def index(request):
if request.method == 'POST':
form = ImageUploadForm(request.POST, request.FILES)
if form.is_valid():
image_instance = request.FILES['image']
file_url = handle_uploaded_file(image_instance)
response = run_replicate(file_url)
output_url = response[0]
context = {'output_url': output_url}
return render(request, 'core/results.html', context)
else:
form = ImageUploadForm()
return render(request, 'core/index.html', {'form': form})
def handle_uploaded_file(uploaded_file):
os.makedirs('images/new', exist_ok=True)
file_path = os.path.join('images/new', uploaded_file.name)
with open(file_path, 'wb+') as destination:
for chunk in uploaded_file.chunks():
destination.write(chunk)
file_url = file_path.replace("\\", "/")
file_url = "https://replit.com/@mashudhassandev/ChatgptImgGen#" + file_url
return file_url
def run_replicate(file_content):
model_id = 'jagilley/controlnet-canny:aff48af9c68d162388d230a2ab003f68d2638d88307bdaf1c2f1ac95079c9613'
response = replicate.run(
model_id,
input={
'image': open(file_content, "rb"),
'prompt': 'hyperrealistic portrait, photograph, real person'
})
return response
如何在 Django 中有效地为上传的图像创建一个可公开访问的 URL?任何见解、代码片段或最佳实践将不胜感激。
答: 暂无答案
评论