Как настроить, подключить медиа-директорию django к Capanel host managment?
Я хочу вызвать картинки или видео из медиа, загруженных пользователями в проекте django.
а также я хочу загрузить фотографии от пользователя и вызвать приложение blogs book.
Я пробовал это, но у меня не работает: MEDIA_ROOT = 'home/username/public_html/media
Если вы хотите загрузить изображение или любой файл в каталог медиа, сначала вам нужно определить FileField
Link, затем установить upload_to
и media root Django settings
настройки:
....
MEDIA_ROOT = 'home/username/public_html/media'
....
модели:
class MyModel(models.Model):
# file will be uploaded to MEDIA_ROOT/uploads
.....
upload = models.FileField(upload_to='uploads/')
.....
после того, как вы загрузили файл и сохранили его в MyModel
, он будет сохранен по адресу
home/username/public_html/media/uploads/
с помощью MyModel.objects.get().upload.url
вы можете обслуживать связанный URL для вашего клиента, но сначала подумайте об определении вашего медиа URL в base Django URL
или в вашей Nginx
маршрутизации.
пример base/urls.py
:
urlpatterns = [
your urls
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
пример ngnix.conf:
# mysite_nginx.conf
# the upstream component nginx needs to connect to
upstream django {
# server unix:///path/to/your/mysite/mysite.sock; # for a file socket
server 127.0.0.1:8001; # for a web port socket (we'll use this first)
}
# configuration of the server
server {
# the port your site will be served on
listen 80;
# the domain name it will serve for
server_name example.com; # substitute your machine's IP address or FQDN
charset utf-8;
# max upload size
client_max_body_size 75M; # adjust to taste
# Django media
location /media {
alias /path/to/your/mysite/media; # your Django project's media files - amend as required
}
location /static {
alias /path/to/your/mysite/static; # your Django project's static files - amend as required
}
# Finally, send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /path/to/your/mysite/uwsgi_params; # the uwsgi_params file you installed
}
}